我如何知道聚合物元素何時準備好?給予是:動態添加聚合物元素的準備事件
它是動態添加,如:
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 />')
,它使事情變得更加複雜。
我的問題是:有沒有更好的方法來做到這一點?
謝謝。
當你說'ele.myCustomMethod()'會失敗,它失敗,因爲它是不確定的或者是函數內的問題? – Kable
@Kable:由於未定義而失敗。它沒有定義,因爲我相信谷歌聚合物(或webcomponent polyfill)尚未完成初始化。 – garyx
你找到答案了嗎?你的解決方案是一樣的我想出來,我也不是很討厭它。 – three