有什么区别:
Session.set("sessionclickcount",1);
Template.hello.clickcount = Session.get("sessionclickcount");
和
Session.set("sessionclickcount",1);
Template.hello.clickcount = function()
{
return Session.get("sessionclickcount");
};
我稍后通过使用以下代码更新会话变量来尝试更新模板数据:
Template.hello.events({
'click input' : function () {
Session.set("sessionclickcount",
Session.get("sessionclickcount")+1);
}
});
第一种方法失败,html不会改变。第二个成功。为什么?谢谢!
答案 0 :(得分:2)
流星中的助手可以是函数或常数值。
来自docs:
Helpers也可用于传递常量数据。
//与{{#ections sections}}一起使用 Template.report.sections = [“情境”,“并发症”,“决议”];
在您的情况下,您将帮助器设置为常量值1,因为它是执行此行javascript时会话字段的值:
Template.hello.clickcount = Session.get("sessionclickcount");
答案 1 :(得分:1)
流星中的助手需要返回功能。这是因为该函数在上下文中运行,并允许meteor跟踪依赖性。
这些依赖关系然后帮助流星知道模板需要用新数据重绘。
如果使用Template.hello.clickcount = Session.get("sessionclickcount");
,渲染引擎(spark)不会从中获得任何依赖关系,这就是它不会改变的原因。它不知道它必须重绘它。