2017-09-08 94 views
0

在聚合物1.0中,有可能檢測聚合物元素是否由構造器創建,當元素創建時命名爲factoryImpl()時觸發該功能。工廠實現在聚合物2.0

我不想在Polymer 2.0中做同樣的事情,如果我通過構造函數創建一個元素,應該觸發一個標準函數並且應該做些什麼。有沒有人以前做過這件事,並可以給出一個暗示呢?

非常感謝

回答

1

您可以使用構造函數:

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

您應該看到 '創造' 登錄,只要你創建TestEle

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

//市價修改下面的評論。

我在2.0中找不到關於舊版factoryImpl等價物的任何信息。但是,你可以嘗試一些工作。

 
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

是的這就是正確的!但我希望構造函數僅在通過命令new TestEle()創建元素時觸發,而不是在通過手動將其寫入文檔樹中創建元素時使用此解決方案構造函數隨時觸發寫下來!它應該只在您寫下的最後兩種方法中觸發 – steke

+0

我不認爲舊版factoryImpl在2.0中受支持 但是,您可以應用一種解決方法來確定是否使用構造函數創建元素Ie new TestEle( )。檢查更新後的答案。 –

+1

非常感謝這也是我的方法,我希望在那裏有更好的方法 – steke