在聚合物中,dom-repeat
模板帮助程序每当将迭代结果标记到DOM中时都会发出dom-change
事件。有没有办法让我知道所有迭代完成的时间?如何判断dom重复何时完成冲压元素
7
A
回答
8
也许这个简单的例子可以帮助解释行为并扩展评论。
<dom-module id="change-tester">
<template>
<h1>Change Tester</h1>
<ul>
<template id="template" is="dom-repeat" items="{{content}}">
<li>{{item}}</li>
</template>
</ul>
<button on-click="more">Add more</button>
</template>
</dom-module>
<script>
Polymer({
is: 'change-tester',
properties: {
content: {
type: Array,
value: function(){ return ["one", "two", "three"]}
}
},
ready: function(){
this.$.template.addEventListener("dom-change", function(event){
console.log(event);
});
},
more: function(){
this.push("content", "four");
this.push("content", "five");
}
});
</script>
每当dom-change
被激发,我记录事件到控制台,所以打开开发者工具,看一看。最初,dom-repeat
有三个迭代,并将用三个元素填充dom。请注意,只有一个事件会触发,即所有三个元素都已添加。如果您点击该按钮,则会在重复内容中添加两个项目。由于dom-repeat
异步更新,这两个项目再一次处理,只会触发一个事件。
因此dom-change
事件实际上是您正在寻找的最终事件。如果您操作与其绑定的物品,它只会再次触发。
1
要访问动态创建的节点(如模板重复) 使用:。
这$$( '#ID')
这个$,而不是ID
例如,如果模板ID为 “模板”,你应该使用
这一点。$$( '#模板')
ready: function(){
this.$$('#template').addEventListener("dom-change", function(event){
console.log(event);
});
},
相关问题
- 1. 如何判断animateLayoutChanges何时完成?
- 2. 如何判断Image.FromStream完成
- 3. Android - 如何判断MediaPlayer何时缓冲
- 4. 如何判断MXML组件何时完全创建完成?
- 5. 如何判断哪些事件绑定到DOM元素?
- 6. 如何判断是否显示DOM元素?
- 7. 如何判断元素是否位于DOM中的另一个元素之前
- 8. 如何判断JUnit何时通过使用TestWatcher完成?
- 9. Android:如何判断服务何时完成
- 10. wpf如何判断数据绑定何时完成?
- 11. 如何判断Directshow.net转换何时完成?
- 12. 如何判断请求何时完成(ASIHTTPRequest)?
- 13. 如何判断对象初始化程序何时完成
- 14. 如何判断dde响应何时完成?
- 15. 如何判断AudioTrack对象何时完成播放?
- 16. 如何判断我的EAP呼叫批次何时完成?
- 17. 如何判断location.reload()何时完成刷新页面?
- 18. 如何判断IPC :: Run作业何时完成
- 19. 如何判断MKMapView和可见MKAnnotationView何时完成绘图?
- 20. 重复light dom元素
- 21. 如何判断通过AppleScript完成iPod同步的时间
- 22. 复制完成Webbrowser元素?
- 23. 如何在AngularJS中生成DOM元素?
- 24. 如何判断AVAudioPlayer播放完毕
- 25. 如何判断tomcat何时启动完成? (用C#控制服务)
- 26. 如何判断量角器/茉莉花何时完成? (报告工具逻辑)
- 27. 如何判断页面何时完成加载(服务器端,而不是JavaScript)
- 28. 如何判断文件何时完成下载并准备使用?
- 29. 如何判断avd何时完全启动?
- 30. ALSA:如何判断声音何时播放完毕
是否有可能通过查看dom变更事件中的数据来确定此事 - 知道哪些数据项应该是最后的,然后检查该数据?然而,也许不是理想的解决方案。 – newfivefour
https://github.com/Polymer/polymer/blob/master/src/lib/template/dom-repeat.html @ 348它在render() –
结束时触发了一个事件,正如Robert在'dom当“dom-repeat”模板的渲染完成时,会触发-change'事件。然后,您应该能够添加到您的模板中,以下代码行将在该事件被触发时执行一个函数:'' –