如何判断是否加载了聚合物元件?
How to figure out wether polymer element is loaded or not?
我想使用 Polymer.import( elements, callback )
动态导入元素。如果元素已经导入,则永远不会调用回调,否则在加载元素时调用。
问题是:有没有一种标准的方法来确定是否加载了聚合物元素?
在您注册元素之前,它会被视为标准 HTMLElement
。
因此,您可以通过以下方式检查元素:
<!-- IN HEAD: core-pages would be loaded -->
<link href="core-pages/core-pages.html" rel="import">
...
<!-- IN BODY: core-animated-pages would be NOT loaded -->
<core-pages id='reg'></core-pages>
<core-animated-pages id='unreg'></core-animated-pages>
...
<script>
document.addEventListener('polymer-ready', function(e) {
/* will print false ⇒ registered */
console.log(document.getElementById('reg').constructor === HTMLElement);
/* will print true ⇒ unregistered */
console.log(document.getElementById('unreg').constructor === HTMLElement);
});
</script>
我想使用 Polymer.import( elements, callback )
动态导入元素。如果元素已经导入,则永远不会调用回调,否则在加载元素时调用。
问题是:有没有一种标准的方法来确定是否加载了聚合物元素?
在您注册元素之前,它会被视为标准 HTMLElement
。
因此,您可以通过以下方式检查元素:
<!-- IN HEAD: core-pages would be loaded -->
<link href="core-pages/core-pages.html" rel="import">
...
<!-- IN BODY: core-animated-pages would be NOT loaded -->
<core-pages id='reg'></core-pages>
<core-animated-pages id='unreg'></core-animated-pages>
...
<script>
document.addEventListener('polymer-ready', function(e) {
/* will print false ⇒ registered */
console.log(document.getElementById('reg').constructor === HTMLElement);
/* will print true ⇒ unregistered */
console.log(document.getElementById('unreg').constructor === HTMLElement);
});
</script>