来自先前查询的流星返回名称

时间:2016-01-28 13:48:02

标签: javascript html mongodb meteor

我正在做一个小型应用,我会在其中显示朋友请求并且接受/拒绝'每个请求旁边的按钮。

这是我的Template.notifications.helpers

listRequests: function(){
        return Notifications.find({toUser: Meteor.userId()});
    }

这里是我的通知(我在哪里显示好友请求的通知)模板:

<template name="notifications">
    {{#each listRequests}}
        <p>{{displayUserName}}
            <span id="fromUserId"><strong>{{fromUser}}</strong></span> sent you a friend request.
            <button class="btn btn-primary" id="btnAcceptRequest">Accept</button>
            <button class="btn btn-danger" id="btnRejectRequest">Reject</button>
        </p>
        <p>{{createdAt}}</p>
    {{/each}}
</template>

这是我的user集合:

{    
 "_id": "zaSuTBgRh3oQcPSkh",
  "emails": [
    {
      "address": "johnsmith@yahoo.com",
      "verified": false
    }
  ],
  "profile": {
    "firstname": "John",
    "lastname": "Smith"
  }
}

目前,此代码有效。问题是它只显示发送请求的用户_id,因此fromUser。我想要做的是显示请求用户的名字和姓氏,但我不知道从哪里开始。

当然,我尝试用{{fromUser}}上的{{profile.firstname profile.lastname}}return Meteor.users.find({});替换Template helpers,但它不起作用。谁能帮我这个?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您需要一个帮助程序来查找其他用户文档并返回适当的值:

Template.notifications.helpers({
  fromUserName: function(){
    var fromUser = Meteor.users.findOne({ _id: this.fromUser });
    if ( fromUser ){
      return fromUser.profile.firstname + ' ' + fromUser.profile.lastname;
    }
  }
});

请注意,如果您已删除 autopublish ,则还必须从服务器的用户集合中发布配置文件字段(至少),然后在客户端上订阅该字段。