1

我正在尝试使用 Angular Meteor 1.3 获得最优秀的 dburles/meteor-collection-helpers 包。我有两个系列。

    Lists.attachSchema(new SimpleSchema({
  title: {
    type: String
  },
  archived: {
    type: Boolean
  }
  createdAt: {
    type: Date,
    denyUpdate: true
  },
  sort: {
    type: Number,
    decimal: true,
    optional: true
  },
  updatedAt: {
    type: Date,
    denyInsert: true,
    optional: true
  }
}));

和卡片:

Cards.attachSchema(new SimpleSchema({
  title: {
    type: String
  },
  archived: {
    type: Boolean
  },
  listId: {
    type: String
  },
  members: {
    type: [String],
    optional: true
  },
  userId: {
    type: String
  },
  sort: {
    type: Number,
    decimal: true
  }
}));

我定义了一个集合助手如下:

Lists.helpers({
  cards() {
    return Cards.find({
      listId: this._id,
      archived: false
    }, {sort: ['sort']});
  }
});

我正在使用发布组合首先获取列表,然后通过订阅关联卡片。这很管用。但是在我的模板中,当我似乎无法弄清楚list.cards()在我的ng-repeat. 这是我的控制器的一个片段,以及相关的模板标记。

$reactive(this).attach($scope);

      //note this is composite publish
      this.subscribe('list', () => {
        return [$stateParams.listId];
      });

      this.helpers({
        lists: () => {
          return Lists.findOne({_id: $stateParams.listId});
        }
      });

<a class="" ng-repeat="card in list.cards">
  • 我主要得到无限消化问题
  • 你不能调用list.cards(),不能使用函数ng-repeatng-repeat我尝试时遇到无限消化问题
  • 在示例中调用什么都不做,但我相信那是因为它返回一个函数。
  • 其他较旧的解决方案仅涉及添加范围函数和查询,但这似乎不起作用并且失去反应性。

有什么明显的吗?我已经看到其他一些人遇到了同样的问题,但是在早期版本的角流星中没有成功,希望有人能解决这个问题。谢谢。

4

0 回答 0