0

上下文:我正在使用 CollectionParams将方法从服务器调用到 C 应用程序。C 应用程序完成它的工作,然后通过 RPC 调用服务器向我发送结果。结果,我可以Params ID删除相应的元素。随着 Element of 的删除Params,C 应用程序会收到一条removed消息。我想阻止这种行为以避免消息的 C 应用程序过载。

我考虑过将removed事件实现到服务器上的 Publish 方法中,以防止服务器通知 C 应用程序。我只想让 C 应用程序了解added事件。

在 Meteor Doc 上有一个实现的例子,addedremoved我不明白。有人能帮我吗 ?

我试过这个(根本不工作):

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();
  });
}
4

1 回答 1

0

看起来您的目标是订阅数据集但只接收added消息,而不是changedor 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.

于 2015-01-15T05:08:04.913 回答