先发生哪一个? WebComponentsReady还是dom-change?

时间:2015-07-21 06:40:51

标签: javascript polymer

我刚开始使用Polymer。似乎有两个事件表明内容准备就绪:

// Listen for template bound event to know when bindings
// have resolved and content has been stamped to the page
app.addEventListener('dom-change', function() {
  console.log('Our app is ready to rock!');
});

// See https://github.com/Polymer/polymer/issues/1381
window.addEventListener('WebComponentsReady', function() {
  // imports are loaded and elements have been registered
});

我想知道是否有必要将它们包装在一起并将代码放在里面,以确保在执行任何脚本之前文档已完全加载,例如:

app.addEventListener('dom-change', function() {
  window.addEventListener('WebComponentsReady', function() {
    // scripts go here
  });
});

但是,我不知道在所有浏览器中这样做的正确方法是什么。如果在dom-change之前发生WebComponentsReady,则内部脚本永远不会执行。

哎呀,这甚至可能不是必需的,因为聚合物 - 起动器 - 套件不能将它们包裹在一起。在这种情况下,哪些类型的脚本应该进入dom-change事件,哪些类型的脚本应该进入WebComponentsReady事件?

1 个答案:

答案 0 :(得分:1)

将原生ready回调用作described here

<script>
  (function() {
    Polymer({
      is: 'example-element',
      properties: {...},
      ready: function() {
        // access a local DOM element by ID using this.$
        this.$.header.textContent = 'Hello!';
      }
    });
  })();
</script>