2016-03-15 81 views
5

我如何知道聚合物元素何時準備好?給予是:動態添加聚合物元素的準備事件

它是動態添加,如:

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

所以,現在當我打電話ele.myCustomMethod()它會失敗,因爲它是還沒有準備好(在FF/IE/Safari瀏覽器與WebComponent的-lite.js)

我在做什麼,現在是呼叫this.fire('ready')聚合物元素ready()函數裏面,聽它ele.addEventListener('ready',()=>{ele.myCustomMethod();})

但是,這讓所有的代碼非常難寫。有時我使用$(body).html('<my-custom-element />'),它使事情變得更加複雜。

我的問題是:有沒有更好的方法來做到這一點?

謝謝。

+0

當你說'ele.myCustomMethod()'會失敗,它失敗,因爲它是不確定的或者是函數內的問題? – Kable

+0

@Kable:由於未定義而失敗。它沒有定義,因爲我相信谷歌聚合物(或webcomponent polyfill)尚未完成初始化。 – garyx

+0

你找到答案了嗎?你的解決方案是一樣的我想出來,我也不是很討厭它。 – three

回答