Je crée un élément, je l'importe et lui attribue un attribut. Je veux que le code s'exécute seulement si l'élément n'a pas été importé et créé auparavant. Lorsque la fonction est appelée je reçois l'erreur suivante:Polymer 2.0 Comment créer un élément, puis importer avec Polymer.importHref et transmettre des données avec setAttribute
this._dialogPopUp.open is not a function
Ce qui se passe est que this._dialogPopUp.open();
est l'exécution avant que l'élément est créé et importé. Si j'appuie sur le bouton pour la deuxième fois, le pop-up fonctionne car il a été créé et importé auparavant. Comment puis-je faire attendre que l'élément soit créé et importé, puis continuer l'exécution?
Actuellement, j'ai cette implémentation:
_loadDialogPopUp(e) {
let me = this;
if(!me._dialogPopUp){
me._dialogPopUp = document.createElement('su-dialog');
Polymer.importHref(this.resolveUrl('su-dialog.html'), (e) => {
this.root.appendChild(this._dialogPopUp);
});
}
customElements.whenDefined('su-dialog').then(() => {
me._dialogPopUp.open();
me._dialogPopUp.setAttribute('uid', this.user.uid);
})
}
Merci, semble la bonne direction. J'ai mis à jour le code implémentant 'customElements.whenDefined'. Comment puis-je obtenir une référence de l'élément nouvellement créé? –