0

我正在尝试转换出版物,这是我的代码:

Meteor.publish('appointments.waiting', function () {
  var self = this,
  count = 0;

  Appointments.find().forEach(function (appointment) {
    var patients = Patients.find({_id: appointment.patient_id}).fetch();
    var first_name = patients[count].profile.first_name,
        middle_name = patients[count].profile.middle_name,
        surname = patients[count].profile.surname,    
        name = surname + ', ' + first_name + ' ' + middle_name;

    self.added('appointments', appointment.names, name);

  });

  self.ready();

});

当 I 时console.log(name),我可以看到完整的名称,但我不太确定如何使用this.added来添加新数据。我该怎么做?如果我确实输入了这个新数据,它会覆盖旧数据吗?

如果有更好的方法来实现这一点,我也想知道。

4

1 回答 1

1

我相信您的代码将做的是发布一个静态约会集,这应该可以工作。它不能覆盖任何东西,因为它正在创建新的东西(新的出版物)。

因此,我认为您的代码没有任何问题。但是,如果您在更改然后Appointments更改的响应式发布之后,那么您将需要使用observeorobserveChanges代替.forEach-- 然后还开始使用this.changed,而不是仅添加(除非事情永远不会改变)和this.removed.

于 2016-08-27T04:19:36.763 回答