我有两个问题和答案。我在Answers集合中有问题_id。这是经过验证的,因为我还有休斯顿软件包,可以让我看到我的所有馆藏和数据。
这可以按预期工作。我验证了数据是在答案集合字段questionId。
Questions.findOne(Session.get('question_id'));
这没有找到数据? 我见过这样的例子,所以只能假设语法是正确的。? 我希望所有答案记录的光标都匹配。
Answers.find( {questionId: Session.get('question_id')} );
这是在template.events。
Meteor.call("addQuestion",questionText,function(error, question_id){
if (error) {
alert("Server could not save your question at this time.");
Session.set('question_id',"");
Session.set('adding_answers',false);
} else {
Session.set('question_id',question_id); // Save the question _id
Session.set('adding_answers',true); // Causes template newAnswers to be displayed
template.find('.inputQuestion').value = ""; // Clear prior question value
}
});
答案 0 :(得分:0)
首先,根据我的意见,不要制作Meteor.call
,只是为了插页,最好这样做。
Question.insert({questionText:questionText},function(error, question_id){
if (!error) {
Session.set('question_id',this._id); // Save the question _id
Answers.insert({questionId:question_id})
Session.set('adding_answers',true); // Causes template newAnswers to be displayed
template.find('.inputQuestion').value = ""; // Clear prior question value
} else {
alert("Well i know this is kinda weird, but.. something wrong happened");
}
});
当然,使用更正允许/拒绝。
现在。为什么findOne,不工作。
现在找到的答案将会是这样的。
Tracker.autorun(function(){
var findAnswers = Answers.find({question:Session.get('question_id')})
console.log(findAnswers);
}
因此它应该有用。
注意:如果您想保留Meteor.call
,只需复制粘贴findOne
答案 1 :(得分:0)
您的代码的其他部分可能有问题。
您应该可以使用Answers.find({question_id: Session.get('question_id')});
。我为你在Meteorpad上创建了一个样本:Link
检查代码上的拼写错误。一些可能的错误:
questionId
字段位于Answers集合中吗?questionId
而不是question_id
吗?