上下文:我使用集合Params
来调用从服务器到C应用程序的方法。 C应用程序执行其操作,然后通过RPC调用服务器以将结果发送给我。结果,我得到Params ID
删除相应的元素。
删除Params
元素后,C应用会收到removed
消息。我想防止这种行为,以避免重载消息的C app。
我已经考虑过在服务器上的Publish方法中实现removed
事件,以防止服务器通知C应用程序。我只是希望C应用程序能够通知added
个事件。
在Meteor Doc上,有added
和removed
的实施示例,但我不理解。有人能帮助我吗?
我试过这个(根本不工作):
Meteor.publish('expert_mode_parameters', function ()
{
var self = this;
var handle = Expert_Mode_Parameters.find().observeChanges({
added: function ()
{
return Expert_Mode_Parameters.find();
},
removed: function ()
{
return [];
}
});
self.ready();
self.onStop(function () {
handle.stop();
});
}
答案 0 :(得分:0)
您的目标似乎是订阅数据集但仅接收added
条消息,而不是changed
或removed
。
以下代码应该这样做:
Meteor.publish('expert_mode_parameters', function () {
var self = this;
var handle = Expert_Mode_Parameters.find().observe({
added: function (document) {
self.added("expert_mode_parameters", document._id, document);
}
});
self.ready();
self.onStop(function () {
handle.stop();
});
}
概念是,您正在观看Expert_Mode_Parameters.find()
的结果,然后在有新项目时调用self.added(document)
。同样的事情可以很容易地扩展到包括changed
。