我希望在更新基础集合时在屏幕上制作元素。
在我看来,每次更新模板时都会触发Template.my_template.rendered = function(){}。
理想情况下,第一次渲染模板时此函数不会触发。
这似乎是一个明显的用例,我错过了什么?
答案 0 :(得分:0)
对于Meteor< 0.8
你应该使用Template.myTemplate.created第一次做某事。每次第一次更改包括时,文档Template.myTemplate.rendered都会被触发。如果你想将它限制在第二次并且在那之后发生变化(我猜这是你想要的),你必须编写一些自定义逻辑。目前没有支持它的Meteor api。
对于Meteor-0.8
似乎这个API在Meteor-0.8中经历了一些向后不兼容的changes。
有一种优雅的方法来实现这一点,如Adaptation to the new Meteor rendered callback所述。基本上你应该通过调用一次辅助函数来修改你在模板的javascript中的变量附加的任何函数。例如,
var renderCount = 1;
var myHelper = function () {
console.log("rendered #" + renderCount);
renderCount++;
};
Template.myTemplate.myVariable = function () {
myHelper();
return this.name;
};
希望这会有所帮助。在同一个回购中还有另一种替代方法。你可能会喜欢那个。
答案 1 :(得分:0)