Meteor中的相关项目

时间:2014-12-17 08:11:29

标签: javascript node.js meteor publish-subscribe iron-router

我有群组和项目,这些项目与特定群组相关。在组的“详细信息页面”中,我希望查看属于特定组的所有项目。

我试过这个

Router.route('/group/:_id', {
  name: 'group',
  template: 'group',
  waitOn: function () {
    return this.subscribe("groups", this.params._id);
  },
  data: function () {
    return {
      group: Groups.findOne(this.params._id);
      items: Items.find({groupId: this.params._id}),
    }
  }
});

但是,如果它应该等待特定组和属于该组的项目,那么应该等待什么呢?

2 个答案:

答案 0 :(得分:2)

您可以返回要等待的订阅数组:

waitOn: function () {
    return [
        Meteor.subscribe("groups", this.params._id),
        Meteor.subscribe("items", this.params._id)
    ]
}

答案 1 :(得分:0)

您可以拥有其他发布功能

 Meteor.publish('relatedItems', function (groupId) {
   return Items.find({groupId: groupId});
 });

并等待两个订阅

 waitOn: function () {
   return [
     Meteor.subscribe("groups", this.params._id),
     Meteor.subscribe("relatedItems", this.params._id)
   ];
 },

或者您可以像这样添加到现有出版物中:

 Meteor.publish('groups', function (groupId) {
   return [
      Groups.find({_id: groupId}),
      Items.find({groupId: groupId}),
   ];
 });