私は、約50の文書を持つコレクション「質問」の3つの文書からなるテンプレートグループを検索する方法を探しています。テンプレートに表示されている最初の3つのドキュメント(質問)の後、次の3つのドキュメントを取得するか、まったく完了するかをユーザーが決める(ボタンを押す)必要があります。カーソル(コレクション)からn個の文書のグループを取り出す方法
collections.js:
Questions = new Mongo.Collection("questions");
myapp.js:
var lastQ=0
Template.questions.helpers ({
getGroupQuestions: function(){
//Ideally if I only query one time the entire collection, and store in local var
var listOfQuest = Questions.find({$and: [ {qNumber: {$nin: answeredQ}}, {qNumber:{$gt:lastQ}}]}, {sort:{qNumber:1}});
lastQ = lastQ + 3;
return {"Obj1":listOfQuest.fetch()[0], "Obj2":listOfQuest.fetch()[1], "Obj3":listOfQuest.fetch()[2]}; //This is not working, the returned object cant be read in template
}
});
私は3次まで3からの質問をロードする方法を発見していないことは私のコードです
myapp.html:
<template name="questions">
<h4> Tell us a little about yourself: </h4>
<form class="js-add-answers" id="add-answers">
{{#each getGroupQuestions}}
<label for="{{qNumber}}">{{qDescription}}</label>
<input type="text" class="form-control" id="{{qNumber}}" placeholder="{{qHints}}"/>
<p></p>
{{/each}}
<button class="btn btn-warning js-join-event">Save and Join</button>
<button class="btn btn-warning js-load-more">Save and load more Q</button>
</form>
</template>
ありがとうございました!あなたのコードはきれいに見えます....ちょっと疑う:私のテンプレートの結果は、そのようなヘルパーを使ってテンプレート内で呼び出すべきですか? 'template.questions.helpers({threeQuest:function {)Questions.find()}} ); ' コレクション全体をロードする必要がある他のテンプレートの質問に対する別のサブスクリプションがあるので、それが正しいかどうか疑問です。 – Ruben
サブスクリプションのスコープはテンプレート内でのみ保持されます。特定のテンプレートを個別に購読すると、レンダリングが速くなります。だから親愛なる友人、サブクラスを使っている場所の数にかかわらず、テンプレートヘルパーのレンダリングはfindメソッドで渡す条件に依存します。私は正確に3つの新鮮な質問を見つけるためのコードを教えました。それをテンプレートヘルパーにも貼り付けることができます。害はない。とにかく、他のテンプレートサブスクリプションは無事です。どうもありがとうございます。 –
ちょうどもう1つの質問(この初心者で喜んでください= S):自分のテンプレートに特有のサブスクリプションはどうしますか?私はテンプレートヘルパーの中に 'sub'を置くべきですか?すでにMeteor.isClientの中にサブスクリプションを入れて、上記のようなヘルパーを作成しますが、ヘルパーのQuestions.findクエリはコレクションからすべてのレコードを取得しています。私はその問題が、「質問」からすべての記録をミニモードブブにしている私の他のサブスクリプションによって引き起こされたと思います。そのサブスクリプションは別のテンプレートにも必要です。 – Ruben