Meteor JS:RegisterHelper显示相关的用户信息

时间:2014-04-29 02:13:37

标签: javascript mongodb meteor

我正在开发一个小型MeteorJS应用程序(供个人使用),这将是一个非常基本的CMS。

我想在每个帖子旁边显示用户信息(创建帖子的用户)。

这是我的把手(或空格键)模板:

<template name="post">
  <div class="row">
    <div class="col-md-7">
      <h3>{{ title }} - <span class="time" title="{{createdAt}}">{{createdAt}}</span></h3>
      <p>Created By - {{ user_id }}</p>
      {{{content}}}
    </div>

    <div class="col-md-5">
      {{> editActions }}
    </div>
  </div>
</template>

<template name="editActions">
  <ul class="nav nav-pills">
    <li>
      <a href="{{ pathFor 'postEdit' }}">
        <i class="glyphicon glyphicon-edit"></i>
      </a>
    </li>
    <li>
      <a href="{{ pathFor 'postRemove' }}" data-id="{{ _id }}" class="remove-post">
        <i class="glyphicon glyphicon-remove"></i>
      </a>
    </li>
  </ul>
</template>

我显示了{{ user_id }},但我不确定如何显示实际的用户电子邮件(或任何其他用户信息)。

user_id是我Posts集合中的字段。

1 个答案:

答案 0 :(得分:1)

{{user_id}}替换为{{authorEmail}},然后添加如下模板助手:

Template.post.helpers({
  authorEmail: function() {
    return Meteor.users.findOne(this.user_id).emails[0].address;
  }
});

如果您想在模板中直接访问作者,可以从帮助者处返回用户文档:

Template.post.helpers({
  author: function() {
    return Meteor.users.findOne(this.user_id);
  }
});

然后像这样使用它:

<div class="col-md-7">
  <h3>{{ title }} - <span class="time" title="{{createdAt}}">{{createdAt}}</span></h3>
  {{#with author}}
    <p>Created By - {{profile.name}}</p>
  {{/with}}
  {{{content}}}
</div>