以下是相关的代码模板代码:
<!-- display a list of users -->
<template name="available_user_list">
<h2 class="cha_heading">Choose someone to chat with:</h2>
<div class="row">
{{#each users}}
{{> available_user}}
{{/each}}
</div>
</template>
<!-- display an individual user -->
<template name="available_user">
<div class="col-md-2">
<div class="user_avatar">
{{#if isMyUser _id}}
<div class="bg-success">
{{> avatar user=this shape="circle"}}
<div class="user_name">{{getUsername _id}} (YOU)</div>
</div>
{{else}}
<a href="/chat/{{_id}}">
{{> avatar user=this shape="circle"}}
<div class="user_name">{{getUsername _id}}</div>
</a>
{{/if}}
</div>
</div>
</template>
<template name="chat_page">
<h2>Type in the box below to send a message!</h2>
<div class="row">
<div class="col-md-12">
<div class="well well-lg">
{{#each messages}}
{{> chat_message}}
{{/each}}
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<form class="js-send-chat">
<input class="input" type="text" name="chat" placeholder="type a message here...">
<button class="btn btn-default">send</button>
</form>
</div>
</div>
</template>
<!-- simple template that displays a message -->
<template name="chat_message">
<div class="chat-message">
{{> avatar user=user size="small" shape="circle"}} <div class="chat-center">{{user}}: {{text}}</div>
</div>
</template>
和模板助手:
Template.available_user_list.helpers({
users:function(){
return Meteor.users.find();
}
})
Template.available_user.helpers({
getUsername:function(userId){
user = Meteor.users.findOne({_id:userId});
return user.username;
},
isMyUser:function(userId){
if (userId == Meteor.userId()){
return true;
}
else {
return false;
}
}
})
Template.chat_page.helpers({
messages:function(){
var chat = Chats.findOne({_id:Session.get("chatId")});
return chat.messages;
},
other_user:function(){
return ""
},
})
Template.chat_message.helpers({
user: Meteor.user()
})
我正在创建一个用户可以登录并互相聊天的网站。我已经下载了实用程序:avatar包来显示用户的头像。头像图像基于用户的用户名的第一个首字母。当我使用代码available_user
在模板{{> avatar user=this shape="circle"}}
中呈现头像模板时,它会显示头像中的首字母,因为它与用户集合的上下文有关。
我还希望在用户发送消息时显示头像,但模板chat_message
位于聊天集合内的数组的数据上下文中。所以它只显示没有初始值的默认头像。
documentation for the package并未明确指定我如何为user
或userId
设置模板参数。有人可以帮忙解决这个问题吗?
答案 0 :(得分:0)
我明白了。我将用户ID包含在字段messages
下的userId
数组中的每个对象中,并在模板中将其设置为{{> avatar userId=userId size="small" shape="circle"}}