我正在嘗試創建一個Meteor應用程序,該應用程序將內容存儲在Meteor集合中,以在服務器和客戶端之間傳遞,以在通過twit的異步API調用之後顯示成功消息包。在服務器上更新流星收集,未在客戶端反映
但是,我遇到了一個問題,即當我更新服務器上的集合並且更新未反映在客戶端上時。我的代碼如下:
/lib目錄
Alerts = new Meteor.Collection("alerts");
/客戶端
Template.suggestionForm.events({
"submit form": function (e) {
return Meteor.call('submitMessage', message);
}
});
Meteor.subscribe('alerts');
Meteor.startup(function() {
Tracker.autorun(function() {
console.log(Alerts.find());
})
});
/服務器
Fiber = Npm.require('fibers')
Twit = new TwitMaker({
consumer_key: '...',
consumer_secret: '...',
access_token: '...',
access_token_secret: '...'
});
Meteor.publish("alerts", function(){
Alerts.find();
});
Meteor.methods({
submitMessage: function(message) {
this.unblock();
Twit.post('statuses/update', { 'status': message }, function(err, data, response) {
Fiber(
Alerts.remove({});
Alerts.insert({response: err});
).run();
}));
}
});
當我子調用函數調用的表單並更新集合,但是Tracker.autorun()不運行。任何想法爲什麼會發生這種情況,或者我如何讓客戶端監聽收藏集中的更改將會非常有幫助。謝謝!
我從來沒有覺得這麼笨。謝謝! – Josh