【发布时间】:2015-05-29 10:33:46
【问题描述】:
我有一些数据通过 Session.set(...) 存储在客户端(然后呈现到模板中)。
这些数据是动态变化的......在服务器端,我如何同步它,所以客户端会在服务器上的数据发生变化时更新模板?最好的方法是发布/订阅,但它是为与数据库一起使用而设计的。
这就是我目前为止的结果:
if (Meteor.isClient) {
Session.setDefault('dynamicArray', [{text: "item1"},{text: "item2"}]);
Template.body.helpers({
dynamicData: function(){
return Session.get('dynamicArray');
}
});
// place for code to sync dynamicArray with server
}
if (Meteor.isServer) {
Meteor.startup(function () {
var dynamicArray = [{text: "item3"},{text: "item4"},{text: "item5"}];
// place for code to publish dynamicArray for client
});
}
【问题讨论】:
-
发布和订阅不是为数据库游标设计的,恰恰相反:游标针对发布和订阅进行了优化。您仍然可以将 Pub/Sub API 用于任何类型的 EJSON 数据。
-
好的,所以我发现游标是由适用于 Mongo.Collection 的 .find() 方法返回的,所以为了创建游标,我需要先创建数据库集合,或者我哪里错了?
标签: ajax meteor synchronization publish-subscribe