有人可以澄清Meteor(Handlebars)模板如何与反应源相互作用? documentation已有很多内容,但更系统的解释会有所帮助。
例如,当Session
变量发生变化时,以下内容似乎不会触发模板重绘
Template.foo.rendered = function () {
var selectedItem = Session.get('item_selected');
... do stuff ...
}
我不明白为什么Template.rendered
事件不会对响应源更改做出反应。我还想了解其他事件/方法是否表现出这种特殊行为。
答案 0 :(得分:2)
使用
设置item_selected
值时,模板将重新渲染
Session.set("item_selected","value");
此名称旁边的Session
哈希值具有与Deps.depends类似的被动依赖关系。当您更改此Session哈希时,当前的反应上下文将被无效,并且将重绘/重新呈现所有内容(通过Session.set调用)。
然后将运行.rendered
方法,您可以像使用var selectedItem
一样使用此新值
有关其工作原理的非常详细的视频,您可以查看EventedMind上的视频,其中演示了如何构建Session
以及如何使另一个变量反应。