实施添加,更改和删除服务器端

时间:2015-01-14 15:42:54

标签: meteor meteor-publications

上下文:我使用集合Params来调用从服务器到C应用程序的方法。 C应用程序执行其操作,然后通过RPC调用服务器以将结果发送给我。结果,我得到Params ID删除相应的元素。 删除Params元素后,C应用会收到removed消息。我想防止这种行为,以避免重载消息的C app。

我已经考虑过在服务器上的Publish方法中实现removed事件,以防止服务器通知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();
  });
}

1 个答案:

答案 0 :(得分:0)

您的目标似乎是订阅数据集但仅接收added条消息,而不是changedremoved

以下代码应该这样做:

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