根据Polymer文档,
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
Polymer事件之前触发?我需要知道何时可以与自定义元素交互,例如更改其属性和调用其公共方法。
WebComponentsReady
事件。当单独使用CustomElements polyfill时,这非常有用。此外,值得一提的是,Polymer使用单独的polymer-ready
事件主要是为了支持使用远程样式表而不出现FOUC的组件。 - Scott Milespolymer-ready
触发后插入了自定义元素,所以我无法使用它,需要监听单个元素的 ready 事件。不幸的是,在那时这些元素没有 ready 函数(例如 myElement.ready(doSomething()))
,因为 polyfills 后添加了这些方法。我该怎么解决这个问题? - Iman Mohamadipolymer-ready
事件,现在你只需要监听WebComponentsReady
。 - rajsite