Polymère et WebComponentsReady événement
Selon la Polymère docs, le WebComponentsReady
événement est nécessaire parce que...
Les polyfills analyser les définitions des éléments et de gérer leur mise à niveau en mode asynchrone. Si vous prématurément extraction de l'élément du DOM avant qu'il ait une chance de mettre à niveau, vous travaillerez avec une HTMLUnknownElement. Dans ces situations, d'attendre le WebComponentsReady les cas, avant d'interagir avec l'élément
J'ai une page HTML qui les importations d'un composant web unique et enregistre un gestionnaire qui enregistre une déclaration lorsque tous les composants web sont chargés:
<!DOCTYPE html>
<html>
<head>
<script src="bower_components/platform/platform.js"></script>
<link rel="import" href="elements/my-element.html">
</head>
<body unresolved>
<my-element></my-element>
<script>
window.addEventListener('WebComponentsReady', function(e) {
console.log('components ready');
});
</script>
</body>
</html>
Pourquoi le WebComponentsReady
événement de tir avant mon élément ready
polymère événement? J'ai besoin de savoir quand je peux interagir avec l'élément personnalisé, par exemple, modifier ses propriétés et appeler ses méthodes publiques.
Vous devez vous connecter pour publier un commentaire.
En Polymère 1.0, vous pouvez simplement écouter pour
WebComponentsReady
.En Polymère de 0,5, car il n'a plus les choses de manière asynchrone, il ya un supplément événement appelé
polymer-ready
qui se déclenche lors de vos éléments sont chargés. Voici un jsbin montrant l'ordre.WebComponentsReady
est encore tiré par les CustomElements polyfill pour les raisons indiquées dans l'OP. Ceci est utile lors de l'utilisation de CustomElements polyfill sur son propre. Aussi fwiw, Polymère utilise séparépolymer-ready
cas principalement pour les composants de support à distance à l'aide de feuilles de style sans FOUC.polymer-ready
tiré, je ne peux pas l'utiliser et j'ai besoin d'écouter éléments individuels prêts de l'événement. Malheureusement, ces éléments n'ont pas une fonction prête à ce point(e.g myElement.ready(doSomething()) )
parce que polyfills ajouter ces méthodes tard. Que puis-je faire pour résoudre ce problème?polymer-ready
événement et maintenant vous avez seulement besoin d'écouterWebComponentsReady