HI!
I want to use tags-input widget which attaches some attributes to certain
element in my body.
The idea is to create normal input field on the elm side and later
implement additional functionality
via ports.
So my approach is to load compiled Elm-js code and later once site loads
append it. I found out that
it returns error if I integrate elm outside "ready" function, which I don't
really understand why it happens.
Error:
TypeError: null is not an object (evaluating 'parent.appendChild')
So the fun comes with logging data...
"0" and "2" return empty jQuery object, even though "body" log already
includes element with certain id.
"1" returns the correct pointer to an element, I found that it is because
of js-interloop which puts the tasks
inside setTimeout function at the end of queue, even with 0 timeout, and
it's somehow resolved correctly.
But it's not the correct approach, quite obviously! Which approach would be
correct one and how to achieve
that logs "0" and "2" won't return empty object anymore?
NOTE:
I use browserify.
JS-Code:
"use strict"
const Elm = require('./elm.js')
const TagsInput = require('./bootstraptagsinput.js')
$(document).ready(function() {
const App = Elm.Search.fullscreen()
console.log($("body"));
console.log("0", $('#tagsInputField'));
setTimeout(() => {
console.log("1", $('#tagsInputField'));
}, 0)
console.log("2", $('#tagsInputField'));
})
Elm-View:
renderSearchBar : Model -> Html Msg
renderSearchBar model =
input
[ onInput SearchAggregations
, placeholder "Search Filters"
, value model.filterSearch.input
, id "tagsInputField"
]
[]
--
You received this message because you are subscribed to the Google Groups "Elm
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.