我有一些数据存储在客户端的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](http://docs.meteor.com/#/full/publishandsubscribe)与任何类型的EJSON数据一起使用。 –
好吧,所以我发现游标是由.find()方法返回的,它在Mongo.Collection的方法上工作,所以为了创建游标,我需要先创建数据库集合,或者我错了某处? –