Woher weiß ich, wann ein Polymerelement bereit ist? Geben, dass:Ready-Event für dynamische Polymerelemente
Es wird dynamisch hinzugefügt, wie:
var ele = document.createElement('my-custom-element');
document.body.appendChild(ele);
jetzt Also, wenn ich ele.myCustomMethod()
nenne es wird scheitern, weil es noch nicht fertig ist (in FF/IE/Safari mit webcomponent-lite.js)
Was ich jetzt tun, ist Anruf this.fire('ready')
innerhalb des Polymerelement ready()
Funktion und ele.addEventListener('ready',()=>{ele.myCustomMethod();})
es hören Aber dies alles Code sehr schwer machen, zu schreiben. Und manchmal verwende ich $(body).html('<my-custom-element />')
, und es macht die Dinge komplizierter.
Meine Frage ist: Gibt es einen besseren Weg, dies zu tun?
Vielen Dank.
Wenn Sie sagen, 'ele.myCustomMethod()' fehl, es wird scheitern, weil es nicht definiert ist oder ist das Problem in dieser Funktion? – Kable
@Kable: Es ist fehlgeschlagen, weil es nicht definiert ist. Es ist undefiniert, weil, glaube ich, google polymer (oder webcomponent polyfill) es noch nicht fertig initialisiert hat. – garyx
hast du eine Antwort gefunden? Ihre Lösung ist die gleiche, die ich mir ausgedacht habe und ich bin auch nicht sehr glücklich darüber. – three