这就是我想要实现的目标。
我有两个集合:Questions
和Answers
。
当用户回答问题时,答案将在Answers
集合中设置,并随之传递问题的ID。
我正在使用此助手显示包含所有问题的列表:
questions: function (){
return Question.find({});
}
这个html:
<ol>
{{#each questions}}
<li>{{question}}</li>
{{/each}}
</ol>
我想在每个问题下面显示每个用户给出的答案。我想将问题的ID作为字符串值返回,因此我可以执行以下操作:
answers:function(){
return Answer.find({question: <The ID of the question>});
}
任何人都可以帮我吗?
此致, →
答案 0 :(得分:1)
假设您的Question
集合具有以下架构(为简洁起见而简化):
QuestionSchema = new SimpleSchema({
title: {
type: String,
label: "Question"
},
category: {
type: String,
label: "Category"
}
});
并且您的Answer
集合已
AnswerSchema = new SimpleSchema({
text: {
type: String,
label: "Question"
},
author: {
type: String,
label: "Author"
}
question: {
type: String,
label: "Question"
}
});
您可以通过创建两个模板助手来实现此目的,其中第一个只返回一个问题文档数组,第二个将一个问题ID作为参数,并返回带有该问题ID的所有答案的光标:
Template.questions.helpers({
questions: function(){
return Question.find({}).fetch();
},
answers: function(questionId){
return Answer.find({question: questionId}).fetch();
}
});
接下来,模板需要嵌套的{{#each}}
块,第一个块遍历问题数组,并将答案传递给下一个,作为下一个帮助器的参数。
<template name="questions">
{{#each questions}}
<h1>{{this.title}}</h1>
<ol>
{{#each answers this._id}}
<li>{{text}}</li>
{{/each}}
</ol>
{{/each}}
</template>
答案 1 :(得分:0)
尝试使用此代码。希望它有效
<ol>
{{#each questions}}
<li>{{question}}</li>
<li>{{answers}}</li>
{{/each}}
</ol>
在你的js文件中。
answers:function(){
id = this._id
return Answer.find({question:id});
}
根据您对功能的回应,您可以使用或使用