模板中的流星模板数据上下文在刷新时创建

时间:2014-09-12 07:39:26

标签: javascript meteor page-refresh iron-router

我在模板created函数中使用模板数据上下文。

Template.temp.created = function() { console.log('this.data'); };

当我正常去页面时 - 即。单击该页面的链接 - 我看到控制台记录正确的数据对象。当我点击页面上的刷新按钮时,this.datanull

为什么?


另外,我正在使用iron-router来设置数据上下文:

...
this.route('temp', {
    ...
    data: function() { return MyCollection.findOne(someId); },
    ...
}
...

1 个答案:

答案 0 :(得分:2)

如果您想等到数据出现,请使用waitOn

this.route('temp', {
    waitOn:function(){
      return this.subscribe("nameOfPublishFunction");
    },
    data: function() { return MyCollection.findOne(someId); },
    ...
}

请记住激活加载钩子(感谢@Peppe L-G):

Router.onBeforeAction("loading");

IronRouter docs #waitOn

更新

Here你可以找到带有铁的示例流星应用程序:路由器包,它显示如何打开和关闭加载钩子(Router.onBeforeAction("loading"))将数据的可用性更改为created和{{1}方法。