首先,我通过服务器目录中的装置文件播种活动集合。该系列有许多课程。不同的课程可能具有相同的“主题”字段。我想按主题字段组织呈现的课程列表;所以我首先显示所有主题的列表。为了确定活动数据库中的主题,我使用了下面的 courseTopics 助手。
为澄清而简化
服务器/fixtures.js
if Activities.find().count == 0 {
acts= [ {type: 'course', topic: 'science'}, ....]
_.each(acts, function(act) {
Activities.insert(act);
})
}
客户端/activityList.coffee
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;而且我不知道在哪里可以看到触发重复“添加”的原因。有什么建议么?