最初に、サーバー ディレクトリのフィクスチャ ファイルを介してアクティビティ コレクションをシードします。コレクションには多くのコースがあります。異なるコースが同じ「トピック」フィールドを持つ場合があります。提示されたコースのリストをトピック フィールド別に整理したいと考えています。そのため、最初にすべてのトピックのリストを表示します。アクティビティ データベースにあるトピックを特定するために、以下の courseTopics ヘルパーを使用します。
明確にするために簡略化
サーバー/fixtures.js
if Activities.find().count == 0 {
acts= [ {type: 'course', topic: 'science'}, ....]
_.each(acts, function(act) {
Activities.insert(act);
})
}
クライアント/アクティビティリスト.コーヒー
Template.topicsList.helpers
courseTopics: ()->
topicsList = []
cLq = Activities.find({type: 'course'})
handle = cLq.observeChanges({
added: (id, user)->
console.log "add to activities.", arguments
});
cL = cLq.fetch()
_.each cL, (c)->
if _.indexOf(topicsList, c.definition.topic) is -1 {
topicsList.push(c.definition.topic)
}
tL = _.map topicsList, (t) ->
{topic: t}
私の問題は、コース リスト全体が無効になっていることです。... cLq.observeChanges コールバックは、「コース」活動ドキュメントのそれぞれが 10 秒ごとに新たに追加されるイベントにコレクションが応答していることを示しています。どうやらドライバーの投票で。
私のディレクトリツリーのgrepは、最初のサーバーフィクスチャファイルにActivities.insertしか表示しません。そして、反復的な「追加」を引き起こしているものを確認するためにどこを見ればよいかわかりません。助言がありますか?