我正在尝试创建一个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