如何判断聚合物元素是否加载?

时间:2015-01-18 15:11:13

标签: javascript polymer web-component

我想要Polymer.import( elements, callback )动态导入元素。如果已导入元素,则永远不会调用回调,否则在加载元素时调用它。

问题是:是否有一种标准的方法来确定聚合物元素是否加载?

1 个答案:

答案 0 :(得分:3)

在您注册了元素之前,它会被视为标准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