2016-03-15 38 views
5

Come faccio a sapere quando un elemento polimero è pronto? Dare che:evento pronto per gli elementi di polimeri dinamica add

si aggiunge in modo dinamico, come:

var ele = document.createElement('my-custom-element'); 
document.body.appendChild(ele); 

Così ora quando chiamo ele.myCustomMethod() fallirà perché non è ancora pronto (in FF/IE/Safari con webcomponent-lite.js)

Quello che sto facendo in questo momento è chiamata this.fire('ready') all'interno della funzione di polimero elemento ready(), e ascoltare ele.addEventListener('ready',()=>{ele.myCustomMethod();})

Ma questo rende tutto il codice molto difficile da scrivere. E a volte io uso $(body).html('<my-custom-element />'), e rendere le cose più complicate.

La mia domanda è: C'è un modo migliore per farlo?

Grazie.

+0

Quando si dice 'ele.myCustomMethod()' fallirà, non fallire perché non è definito o è il problema all'interno di tale funzione? – Kable

+0

@Kable: non è riuscito perché non è definito. Non è definito, perché, credo, google polimero (o webcomponent polyfill) non finiscono ancora inizializzazione. – garyx

+0

hai trovato una risposta? La tua soluzione è la stessa che mi è venuta in mente e anch'io non sono molto dispiaciuta. – three

risposta