Router.route('/form/:_id', function () {
this.render('viewForm', {
data: function () {
return forms.findOne({id: this.params._id});
},
waitOn:function(){
return Meteor.subscribe("forms").ready();
}
});
}
,
{name:"forms.show",
layoutTemplate: 'generalLayout'
});
当我打开新私人窗口上的链接时,数据上下文为空。 这是我的模板经理方
Meteor.subscribe("forms");
Template.viewForm.rendered = function(){
console.log("calling view form");
currentForm = this.data;
console.log("form id",currentForm.id);
}
当我重新加载页面时,会检索到数据。
这是我的旋转包加载模板
<template name="loadingTemplate">
{{>spinner}}
</template>
Router.configure({
loadingTemplate: 'loadingTemplate',
layoutTemplate: 'generalLayout'
});
答案 0 :(得分:1)
使用waitOn
函数将订阅方法更改为路由,就像这样,只是为了确保template
等待收集准备就绪
waitOn:function(){
return Meteor.subscribe("forms");
}
另外,请不要忘记loading template
使用waitOn
功能。
Router.configure({
loadingTemplate: 'loadingTemplate',
layoutTemplate: 'generalLayout',
waitOn:function(){
return Meteor.subscribe("forms");
}
});