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"
}
});
これを行うには、2つのテンプレートヘルパーを作成します。最初のヘルパーは質問ドキュメントの配列を返し、2番目のヘルパーは単一の質問IDをパラメーターとして受け取り、その質問IDを持つすべての回答のカーソルを返します。
Template.questions.helpers({
questions: function(){
return Question.find({}).fetch();
},
answers: function(questionId){
return Answer.find({question: questionId}).fetch();
}
});
次に、テンプレートにはネストされた{{#each}}
が必要です 最初の1つが質問配列を反復処理し、次のヘルパーのパラメーターとして次のそれぞれに回答を渡すブロック。
<template name="questions">
{{#each questions}}
<h1>{{this.title}}</h1>
<ol>
{{#each answers this._id}}
<li>{{text}}</li>
{{/each}}
</ol>
{{/each}}
</template>