【发布时间】:2015-06-06 23:05:44
【问题描述】:
我正在尝试对 Iron 路由器使用 observechanges,但它们似乎根本不兼容。
Router.route('/gaming', {
waitOn: function() {
return Meteor.subscribe('chat', function() {
window.chatmessagesCache = new ReactiveVar;
chatmessagesCache.set([]);
return chat.find().observeChanges({
added: function(id, doc) {
var tmpArr;
tmpArr = chatmessagesCache.get();
tmpArr.push(doc);
return chatmessagesCache.set(tmpArr);
}
});
});
}
如果我离开路线并返回路线,则对于每条新记录,observechanges 开始处理的次数与我导航离开和返回的次数一样多。这是怎么回事?
如果我使用subs manager,它会按预期工作,但我不明白为什么当每次加载已经多次调用 Meteor.subscribe 时,waitOn 内的 Meteor.subscribe 如此缓存/订阅不知道。为什么!?我根本无法破译导致这种行为的原因。
另外,我想要完成的事情很简单。我想让用户客户端收到的聊天消息保留在页面上,即使聊天光标不再发布它们(我正在发布最后 10 条聊天消息)
【问题讨论】:
标签: meteor iron-router