我在模板created
函数中使用模板数据上下文。
Template.temp.created = function() { console.log('this.data'); };
当我正常去页面时 - 即。单击该页面的链接 - 我看到控制台记录正确的数据对象。当我点击页面上的刷新按钮时,this.data
为null
。
为什么?
另外,我正在使用iron-router来设置数据上下文:
...
this.route('temp', {
...
data: function() { return MyCollection.findOne(someId); },
...
}
...
答案 0 :(得分:2)
如果您想等到数据出现,请使用waitOn
。
this.route('temp', {
waitOn:function(){
return this.subscribe("nameOfPublishFunction");
},
data: function() { return MyCollection.findOne(someId); },
...
}
请记住激活加载钩子(感谢@Peppe L-G):
Router.onBeforeAction("loading");
Here你可以找到带有铁的示例流星应用程序:路由器包,它显示如何打开和关闭加载钩子(Router.onBeforeAction("loading")
)将数据的可用性更改为created
和{{1}方法。