2

有人可以澄清 Meteor (Handlebars) 模板如何与反应源交互吗?文档中已经有很多内容,但更系统的解释会有所帮助。

Session例如,当变量更改时,以下内容似乎不会触发模板重新绘制

Template.foo.rendered = function () {
    var selectedItem = Session.get('item_selected');
    ... do stuff ...
}

我不明白为什么该Template.rendered事件不对响应式源更改做出反应。我还想了解其他事件/方法是否表现出这种特殊行为。

4

1 回答 1

2

item_selected当您设置值时,模板将重新呈现

Session.set("item_selected","value");

这个Session哈希,除了名称之外,还有一个类似于Deps.depends的反应性依赖。当您更改此 Session 哈希时,当前的反应式上下文将失效,并且所有内容都将重新绘制/重新渲染(通过 Session.set 调用)。

然后,该.rendered方法将在您可以使用此新值的地方运行,就像您使用var selectedItem

有关它是如何工作的非常详细的视频广播,您可以查看 EventedMind 上的视频,其中演示了如何Session构建以及如何使另一个变量反应。

  1. http://www.eventedmind.com/posts/meteor-the-reactive-session-object
  2. http://www.eventedmind.com/posts/meteor-introducing-deps
于 2013-04-21T13:00:14.143 回答