这是我的模板 onCreated 和辅助函数。我提供了内联注释以增加清晰度。我可以看到 self.post 最终被设置,因为当我登录 Template.instance() 时它显示在我的控制台上。但是,当我记录 Template.instance().post 时,它始终是未定义的。
Template.default.onCreated(function() {
var self = this;
self.autorun(function() {
var postId = FlowRouter.getParam('post_id');
self.subscribe('onePost', postId);
self.post = Posts.findOne(FlowRouter.getParam('post_id'));
});
});
Template.default.helpers({
poststage: function(stage) {
console.log(Template.instance()); // I can see post object here
console.log(Template.instance().post; //always undefined
if(Template.instance().post) {
// never true
return Template.instance().post.stage == stage;
}
}
});
Template.default.events({
'submit form':function(event, instance) {
Meteor.call('someFunc', instance.post.anotherField);
}
});
编辑:我应该补充一点,我试图避免两次编写查询,因为我也在模板事件中使用它。(见代码)。