這裏是我的模板onCreated和helper函數。我提供了內嵌評論以增加一些清晰度。我可以看到self.post最終被設置,因爲當我登錄Template.instance()時,它顯示在我的控制檯上。但是,當我登錄Template.instance()。post時,它始終未定義。如何在模板onCreated中使用findOne並在幫助器中訪問它
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);
}
});
編輯:我要補充,我試圖避免編寫查詢兩次,因爲我也是在模板事件使用它。 (見代碼)。
Reactivevar可能有幫助,對meteorchef反應 –
findOne默認是被動的。 –