在Meteor中显示选择名称数据问题?

时间:2014-02-26 07:24:20

标签: javascript meteor

我需要在名单列表中选择一个名称,然后显示该特定人员的详细信息,然后再次选择名单中的其他人,然后取消选择上一个人并显示有关新选择的人员的详细信息。我做了但是它向所有人显示了数据没有选择的成员。我对此没有任何想法。所以请看下面的代码并建议我该怎么做?

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);
    }
  });

1 个答案:

答案 0 :(得分:0)

当您说{{#if selected_name}}时,您说的是“如果选择了任何名称”。这是因为无论当前模板上下文的名称如何,帮助程序都会返回当前所选名称的字符串。您需要将其更改为:

{{#if selected}}
  {{selected_name}}
{{/if}}

这是有效的,因为JavaScript中的空字符串是假值。