【问题标题】:Related items in Meteor流星中的相关项目
【发布时间】:2015-02-15 17:27:38
【问题描述】:

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

我试过了

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}),
    }
  }
});

但是,如果 waitOn 既要等待特定组又要等待属于该组的项目,它应该是什么样子呢?

【问题讨论】:

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


    【解决方案1】:

    你可以返回一个订阅数组等待:

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

    【讨论】:

    • 是的。我真的希望 Iron Router 文档只创建一个示例代码部分,因为它在文档中一点也不明显。
    【解决方案2】:

    你可以有另一个发布功能

     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}),
       ];
     });
    

    【讨论】:

      猜你喜欢
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      相关资源
      最近更新 更多