Polymer和WebComponentsReady事件

时间:2014-02-13 19:25:33

标签: javascript html polymer web-component

根据Polymer docsWebComponentsReady事件是必要的,因为......

  

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聚合物事件之前触发?我需要知道何时可以与自定义元素进行交互,例如更改其属性并调用其公共方法。

1 个答案:

答案 0 :(得分:23)

在Polymer 1.0中,你可以只听WebComponentsReady

在Polymer 0.5中,因为它以异步方式执行更多操作,所以会有一个名为polymer-ready的额外事件,它会在加载元素时触发。这是a jsbin showing the order