Meteorjs在id上循环并获取对象

时间:2015-03-12 20:58:15

标签: meteor

我有一个集合A,它有一个不同ID的嵌入式数组。 这些ID是集合B的ID。

如何在模板中循环到所有这些B的id并获取相关的?

模板:

<template name="Atemplate">
  <h1>Name of A : {{name}}</h1>
  {{#each Bs}}
      {{> Btemplate}}
  {{/each}}
</template>

B模板:

<template name="Btemplate">
  <h1>Name of B : {{name}}</h1>
</template>

B template.js怎么样?

1 个答案:

答案 0 :(得分:1)

如果我理解正确的问题,Btemplate的上下文就是id。因此,在name帮助器中,您可以通过id找到该文档,如下所示:

Template.Btemplate.helpers({
  name: function() {
    var doc = B.findOne(String(this));
    return doc && doc.name;
  }
});

或者(最好有人)将Btemplate上下文设置为B的实例:

Template.Atemplate.helpers({
  allBs: function() {
    return B.find({_id: {$in: this.Bs}});
  }
});

您需要修改A template代码,如下所示:

{{#each allBs}}
  {{> Btemplate}}
{{/each}}

现在您不需要修改Btemplate的原始实现。我还建议您阅读here中的模板文章。