我怎么知道聚合物元素何时准备好?给出:
它是动态添加的,如下所示:
var ele = document.createElement('my-custom-element');
document.body.appendChild(ele);
所以现在当我调用ele.myCustomMethod()
它会失败,因为它还没有准备好(在带有webcomponent-lite.js的FF/IE/Safari中)
我现在正在做的是调用聚合物元件内部的this.fire('ready')
ready()
功能,并ele.addEventListener('ready', ()=>{ele.myCustomMethod();})
但是这使得所有代码都很难编写。有时我使用$(body).html('<my-custom-element />')
,它使事情变得更加复杂。
我的问题是:有没有更好的方法可以做到这一点?
谢谢。
您可以先尝试侦听窗口上的 WebComponentsReady 事件。
来源: https://github.com/webcomponents/webcomponentsjs#webcomponentsready