Javascript 聚合物自定义元件观察者过早点火

Javascript 聚合物自定义元件观察者过早点火,javascript,html,dom,polymer,polymer-1.0,Javascript,Html,Dom,Polymer,Polymer 1.0,我有一个Polymer 1.0自定义元素,它指定了一个名为MyItems的属性,并在该属性上设置了一个observer\u MyItems: Polymer({ is: 'my-custom-element', properties: { MyItems: { type: Object, observer: '_myIt

我有一个Polymer 1.0自定义元素,它指定了一个名为MyItems的属性,并在该属性上设置了一个observer\u MyItems:

       Polymer({
            is: 'my-custom-element',

            properties: {

                MyItems: {
                    type: Object,
                    observer: '_myItemsChanged'
                },
自定义元素的模板包括一个dom repeat,它基于MyItems属性中的项构建dom:

<template is="dom-repeat" items="{{MyItems}}">
    ...
</template>
_myItemsChanged观察器执行DOM的各种操作。这需要在呈现模板后调用,以反映更新的MyItems集合

我遇到的问题是,当调用_myItemsChanged时,模板的DOM尚未更新。我可以通过包括一个超时来延迟_myItemsChanged调用来解决这个问题,但这更像是一个黑客行为,并不是一个切实可行的解决方案

如何确保仅在模板完成渲染后调用observer函数?

您可以侦听模板的dom更改事件


您可以在ready方法中设置一个标志,以测试:

ready: function() {
    this.domready = true;
}
您还可以利用DOMContentLoaded事件:

document.addEventListener("DOMContentLoaded", function(event) {
    console.log("DOM fully loaded and parsed");
});
document.addEventListener("DOMContentLoaded", function(event) {
    console.log("DOM fully loaded and parsed");
});