如何确定聚合物元素是否加载

How to figure out wether polymer element is loaded or not?

本文关键字:是否 加载 元素 聚合物 何确定      更新时间:2023-09-26

我想用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>

现场示例:http://plnkr.co/edit/uqxn6RlBXZ3746AhTnON?p=preview