使用Meteor #each中相关集合的数据

时间:2015-09-07 20:47:30

标签: mongodb templates meteor spacebars

我有一组人员,其字段为{name,id}

我也有包含{user_id,foodName}

的字段

我想创建一个模板,显示人员列表和他们喜欢的食物。我在我的模板中运行每个,以从Likes集合的查询中提取所有这些信息。我想从Likes中获取查询的user_id,然后使用它从People集合中提取该人员的相关名称。

我的模板如下所示:

<template name="likes">
  {{#each likes_list}}
    //This displays the user_id, but I want to have it display the user's name
    <p>{{user_id}} likes {{foodName}}</p>
  {{/each}}
</template>

我的助手看起来像这样:

Template.likes.helpers({  
  likes_list: function() {
    return Likes.find();
  }
});

3 个答案:

答案 0 :(得分:0)

我看到了两个解决方案:

  1. for($i = $maxi->max_id; $i<=$mani->min_id ; $i++) { $Query = "UPDATE general table set number_of_patient='".$_REQUEST['txt[$i]']."'" ; mysql_query($Query); } 添加到您的userName集合中并将其显示为 您的模板中的Likes
  2. 创建发布功能,将&#34;加入&#34;你的收藏(用户和喜欢)。为此,请使用此包:https://atmospherejs.com/reywood/publish-composite

答案 1 :(得分:0)

您可以添加帮助程序以返回用户数据上下文,然后将其与with一起使用:

HTML:

<template name="likes">
  {{#each likes_list}}
    <p>{{#with person}}{{name}}{{/with}} likes {{foodName}}</p>
  {{/each}}
</template>

JS:

Template.likes.helpers({  
  likes_list: function() {
    return Likes.find();
  },
  person: function(){
    return People.findOne({id: this.user_id});
  }
});

答案 2 :(得分:0)

如果您愿意,可以将其映射到单个对象中。

Template.blah.helpers({
  likes: function () {
    return Likes.find().map(function (doc) {
      return _.extend(doc, {
        user: Meteor.users.findOne(doc.user_id)
      });
    });
  }
});

这会将user字段添加到集合中供您参考

{{#each likes}}
  {{user.name}} likes {{foodName}}
{{/each}}