Проблемы с полным пониманием этого примера из документации ... Я пытался запустить его множеством разных способов, чтобы посмотреть, как он работает, и т. д.
Как вы подписываетесь на это? Можем ли мы включить клиентский код, необходимый для работы?
Существует ли коллекция под названием messages-count
? Является ли Room
набором сообщений? Можем ли мы включить определения коллекций в пример?
Буду рад любым советам по этому поводу!
ПРИМЕЧАНИЕ : это код, который появился, когда этот вопрос был первоначально опубликован (май 2012 г.). Теперь это проще.
// server: publish the current size of a collection
Meteor.publish("messages-count", function (roomId) {
var self = this;
var uuid = Meteor.uuid();
var count = 0;
handle = Room.find({room_id: roomId}).observe({
added: function (doc, idx) {
count++;
self.set("messages-count", uuid, "count", count);
self.flush();
},
removed: function (doc, idx) {
count--;
self.set("messages-count", uuid, "count", count);
self.flush();
}
// don't care about moved or changed
});
// remove data and turn off observe when client unsubs
self.onStop(function () {
handle.stop();
self.unset("messages-count", uuid, "count");
self.flush();
});
});