我正在做一个小型应用,我会在其中显示朋友请求并且接受/拒绝'每个请求旁边的按钮。
这是我的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
,但它不起作用。谁能帮我这个?任何帮助将不胜感激。
答案 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 ,则还必须从服务器的用户集合中发布配置文件字段(至少),然后在客户端上订阅该字段。