我的问题是如何在 DOM 中更新一组元素时获取 1 个事件或渲染回调?如果我点击 Blaze wiki https://github.com/avital/meteor-ui-new-rendered-callback中的链接,这不是我想要的。如果我遵循第二个建议,我将获得与元素一样多的渲染调用。并且父元素在页面加载时只会获得 1 个渲染回调。
在我的例子中,我使用 Footable Jquery 插件来格式化表格。初始加载工作正常,但如果我更改 Collection 查找中的过滤器变量,DOM 会更新并且不会再次调用渲染,因为 Blaze 只调用渲染一次。我不想把它放到另一个模板中,因为这只是意味着对渲染的多次调用,因此当整个表只需要一个时,对Footable的多次调用。
任何帮助表示赞赏。
<template name="customerData">
<table class="table">
{{#each dataRows}}
<tr>
<td>{{first_name}}</td>
<td>{{last_name}}</td>
<td>{{email}}</td>
{{#each phones}}
<td>{{phone}}</td>
{{/each}}
</tr>
{{/each}}
</table>
</template>
Template.customerData.rendered = function(){
$(".table").footable();
}
Template.customerData.phones = function(){
var result = [];
_.each(this.phoneNumbers, function(element, index, list){
result.push({ phone: element});
});
return result;
}