我需要在名单列表中选择一个名称,然后显示该特定人员的详细信息,然后再次选择名单中的其他人,然后取消选择上一个人并显示有关新选择的人员的详细信息。我做了但是它向所有人显示了数据没有选择的成员。我对此没有任何想法。所以请看下面的代码并建议我该怎么做?
Html代码:
<td><div class="cdata">
<div class="user {{selected}}">{{Firstname}} {{Lastname}}</div>
{{#if selected_name}}
{{selected_name}}
{{else}}
{{/if}}
</div></td>
JS代码:
//TODO :: Show Contact Details of User
Template.userlist.selected_name = function ()
{
console.log("Session.get"+Session.get("selected_player"));
//var player = Players.findOne(Session.get("selected_player"));
return "hi";//Here sample to show selected one as 'hi' message
};
Template.userlist.selected = function ()
{
console.log("Session.equals"+Session.equals("selected_player", this._id));
return Session.equals("selected_player", this._id) ? "selected" : '';
};
//TODO :: Events
Template.userlist.events
({
'click .user': function ()
{
console.log("You pressed the user name"+this._id);
Session.set("selected_player", this._id);
}
});
答案 0 :(得分:0)
当您说{{#if selected_name}}
时,您说的是“如果选择了任何名称”。这是因为无论当前模板上下文的名称如何,帮助程序都会返回当前所选名称的字符串。您需要将其更改为:
{{#if selected}}
{{selected_name}}
{{/if}}
这是有效的,因为JavaScript中的空字符串是假值。