根据Polymer docs,WebComponentsReady
事件是必要的,因为......
polyfills解析元素定义并异步处理它们的升级。如果您在有机会升级之前过早地从DOM中获取元素,那么您将使用HTMLUnknownElement。在这些情况下,请在与元素
交互之前等待WebComponentsReady事件
我有一个HTML页面,它导入一个Web组件并注册一个处理程序,该处理程序在加载所有Web组件时记录一个语句:
<!DOCTYPE html>
<html>
<head>
<script src="bower_components/platform/platform.js"></script>
<link rel="import" href="elements/my-element.html">
</head>
<body unresolved>
<my-element></my-element>
<script>
window.addEventListener('WebComponentsReady', function(e) {
console.log('components ready');
});
</script>
</body>
</html>
为什么WebComponentsReady
事件在my-element的ready
聚合物事件之前触发?我需要知道何时可以与自定义元素进行交互,例如更改其属性并调用其公共方法。
答案 0 :(得分:23)
在Polymer 1.0中,你可以只听WebComponentsReady
。
在Polymer 0.5中,因为它以异步方式执行更多操作,所以会有一个名为polymer-ready
的额外事件,它会在加载元素时触发。这是a jsbin showing the order。