如何在流星中获取所选项目_id

时间:2016-11-03 20:06:07

标签: javascript mongodb

我是meteor和js的新手,并尝试使用流星构建一些应用程序。 我想获得_id以供进一步使用。在我使用this._来获取对象id之前,这次我不能。

这是html:

{{#each player in getPlayers}}
  <div class="card test">
    <div class="content">
      <a class="header">{{player.name}}</a>
    </div>              
  </div>
{{/each}}

这是js:

Template.playerList.helpers({
  'getPlayers'(){
    var player = PlayerLists.find().fetch();
    return player;
  }
});

和我试图抓住_id的函数:

'click .test': function() {
  event.preventDefault();
  var currentId = this._id;
  currentPlayer = PlayerLists.findOne({_id:currentId});
  console.log(currentId);
}

PlayerLists是一个集合,游戏是文档。我尝试只选择播放器的_id,但只要我点击播放器,currentId就会显示未定义。

有人可以帮我吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

我使用一个简单的解决方案:

{{#each player in getPlayers}}
    <div class="card test">
     <div class="content">
      <a class="header useThisEvent" data-id="{{_id}}>{{player.name}}</a>
     </div>              
    </div>
{{/each}}

'click .useThisEvent': function() {
event.preventDefault();
//there you have id of selected item. Its imporatant to use event.currentTarget
var id = $(event.currentTarget).data('id')
}

//Try to simple you code:
Template.playerList.helpers({
'getPlayers'(){
return PlayerLists.find().fetch();
}
});

{{#each player in getPlayers}} i suggest to change for {{#each getPlayers}}

btw in'this'可能你有窗口对象,而不是来自PlayerList集合的_id。尝试使用Template.instance()或Template.currentData(),但这种方法有时可以返回其他内容。