2017-09-08 1 views
0

Dans Polymer 1.0, il y avait la possibilité de détecter si un élément polymère a été créé par le constructeur, la fonction qui a été déclenchée lors de la création de l'élément nommé factoryImpl().factoryImplementation dans Polymer 2.0

Je ne ferais pas la même chose dans Polymer 2.0, si je crée un élément via un constructeur, une fonction standard devrait être déclenchée et devrait faire quelque chose. Est-ce que quelqu'un a déjà fait cela et peut-il donner un indice pour le faire?

Merci beaucoup

Répondre

1

Vous pouvez utiliser constructeur:

 
class TestEle extends Polymer.Element { 
     static get is() { return 'test-ele'; } 
     constructor() { 
     super() 
     console.log('created') 
     } 
//... 

Vous devriez voir 'créé' enregistrés chaque fois que vous créez TestEle

 
<test-ele> </test-ele> // created 
or 
document.createElement('test-ele') // created 
or 
new TestEle() // created 

// Modifié selon les commentaires ci-dessous.

Je n'ai trouvé aucune information sur l'équivalent factoryImpl existant dans 2.0. Cependant, il y a un travail autour de vous pourrait essayer.

 
class TestEle extends Polymer.Element { 
     static get is() { return 'test-ele'; } 
     constructor(c) { 
     super() 
     console.log('created') 
     if(c) { 
      console.log('created using constructor') 
     } 
     } 
... 
 
<test-ele> </test-ele> // created 
or 
document.createElement('test-ele') // created 
or 
new TestEle(true) // created and created using constructor 
+0

Oui C'est vrai! Mais je veux que le constructeur, soit seulement déclenché quand j'ai créé l'élément via la commande new TestEle(), et non quand je crée l'élément en l'écrivant au document Tree by Hand, avec cette solution le constructeur est déclenché Everytime as you écris le! Il ne devrait être déclenché que dans les deux dernières façons que vous avez écrites – steke

+0

Je ne pense pas que l'ancienne factoryImpl soit supportée dans 2.0 Cependant, il existe une solution de contournement que vous pouvez appliquer pour identifier si un élément est créé en utilisant le constructeur ie new TestEle (). Vérifiez la mise à jour de la réponse. –

+1

Merci beaucoup c'était aussi mon approche, j'espérais là où une meilleure approche – steke