我有一些數據存儲在客戶端的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的方法上工作,所以爲了創建遊標,我需要先創建數據庫集合,或者我錯了某處? –