Я пытаюсь создать приложение Meteor, которое хранит контент в коллекции Meteor, который будет передаваться между сервером и клиентом, чтобы отобразить сообщение об успешном завершении после асинхронного вызова api через twit пакет.Сбор метеоров обновлен на сервере, не отражается на клиенте
Однако я столкнулся с проблемой, когда обновляю коллекцию на сервере, и обновления не отражаются на клиенте. Мой код выглядит следующим образом:
/Библиотека
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