自从我升级到 0.8.0 后,我遇到了一个问题。渲染的模板不再被触发(第一次除外)。
我遵循了以下建议: https ://github.com/avital/meteor-ui-new-rendered-callback/blob/master/new2/client/each.js
这没有帮助,所以我最终制作了一小段代码(通过修改 new2 示例)。
主要区别在于更新是由 Session 变量更改而不是 DB 更改触发的。
这完美地显示了问题,因为在此示例中仅触发了两次渲染:
客户端/each.js
Template.list.items = function () {
return (Session.get('items') || 'None')
};
var renderCount = 1;
var logRender = function () {
console.log("rendered #" + renderCount);
renderCount++;
};
Template.list.rendered = function () {
logRender();
};
Template.justName.rendered = function () {
logRender();
};
setInterval(function () {
Session.set('items', {name: Random.choice(["one", "two", "three"])});
}, 1000);
客户端/each.html
<body>
{{> list}}
</body>
<template name="list">
{{#with items}}
{{> justName}}
{{/with}}
</template>
<template name="justName">
{{name}}
</template>
当 Session.set 触发内容更新时,如何正确触发 Template.justName.rendered 回调?
谢谢,