这是我的应用的root
中的router.js文件。出于某种原因,我一直未定义question
。
Router.map( function() {
this.route('question_display', {
path: '/questions/:_id/:title?',
template: 'display_question',
yieldTemplates: {
'header': {to: 'header'},
'footer': {to: 'footer'}
},
waitOn : function () {
return Meteor.subscribe('questions');
},
before: function () {
var id = this.params._id;
var question = Questions.findOne({_id: id});
console.log(question);
Router.go('postShow', {_id: id, title: question.title});
}
});
});
我的publish.js
文件中也有一些代码位于/server/
目录
Meteor.publish('questions', function () {
return Questions.find({});
});
我不确定究竟出了什么问题。我以前做过这个,但是没有问题,但是,当我试图查找文档时,现在我一直未定义。顺便提一下,这个文档确实存在于我的数据库中。
答案 0 :(得分:0)
所以你需要用Questions.findOne
包裹你的if (this.ready() == true)
。基本上它需要等待订阅准备好。