我是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就会显示未定义。
有人可以帮我吗?非常感谢!
答案 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(),但这种方法有时可以返回其他内容。