17

根据Polymer 文档,该WebComponentsReady事件是必要的,因为...

polyfill 解析元素定义并异步处理它们的升级。如果您在 DOM 有机会升级之前过早地从 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>

为什么事件在 my-element 的聚合物事件WebComponentsReady之前触发?ready我需要知道何时可以与自定义元素交互,例如更改其属性并调用其公共方法。

4

1 回答 1

23

在 Polymer 1.0 中,您可以只听WebComponentsReady.

在 Polymer 0.5 中,因为它以异步方式执行更多操作,所以会调用一个额外的事件polymer-ready,该事件将在您的元素加载时触发。这是一个显示订单的 jsbin

于 2014-02-13T19:48:29.827 回答