实现添加、更改和删除服务器端
Implement added, changed and removed server side
上下文: 我正在使用集合 Params
从服务器调用方法到 C 应用程序。 C 应用程序完成它的工作,然后通过 RPC 调用服务器将结果发送给我。结果,我得到 Params ID
来删除相应的元素。
删除 Params
的元素后,C 应用会收到一条 removed
消息。我想阻止这种行为以避免消息的 C 应用程序过载。
我考虑过将removed
事件实现到服务器上的Publish方法中,以防止服务器通知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();
});
}
您的目标似乎是订阅数据集,但只收到 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
.
上下文: 我正在使用集合 Params
从服务器调用方法到 C 应用程序。 C 应用程序完成它的工作,然后通过 RPC 调用服务器将结果发送给我。结果,我得到 Params ID
来删除相应的元素。
删除 Params
的元素后,C 应用会收到一条 removed
消息。我想阻止这种行为以避免消息的 C 应用程序过载。
我考虑过将removed
事件实现到服务器上的Publish方法中,以防止服务器通知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();
});
}
您的目标似乎是订阅数据集,但只收到 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
.