Meteor:操作模板数据

Meteor: Manipulate Template Data

这是一个 Meteor/Blaze 问题。

我有一个名为 Lists 的 Mongo 集合,其中包含 postId 列表,我想查询并填充来自另一个名为 Posts 的集合的数据。

架构

Posts: [{
   _id: String,
   // post data, I want to access this from a repeated list
}]

Lists: [{
 _id: String,
 posts: [String] // of ids
}]

列表模板:

{{#if posts}}   /// referring to List.posts
<div class="list-posts">
  <ul>
    {{#each posts}}

         // here I would like query for the corresponding Posts data   

    {{/each}}
  </ul>
</div>
{{/if}}

我不确定如何使用 Meteor 执行此操作。模板助手?

一个优雅的解决方案是使用流行的 dburles:collection-helpers 包:

Lists.helpers({
  posts: function(){
    return Posts.find({
      _id: {
        // I suggest renaming your Lists.posts field to Lists.postIds.
        $in: this.postsIds
      }
    });
  }
});

然后您必须确保相应的帖子与您的列表一起发布,并且您将能够像在伪代码中一样使用 {{#each posts}}