【发布时间】:2014-04-21 09:05:27
【问题描述】:
在meteor 的排行榜示例中,有一段代码使用this._id 设置“selected_player”,用于更新玩家数据库。这是客户端代码:
Template.leaderboard.players = function () {
return Players.find({}, {sort: {score: -1, name: 1}});
};
Template.leaderboard.selected_name = function () {
var player = Players.findOne(Session.get("selected_player"));
return player && player.name;
};
Template.player.selected = function () {
return Session.equals("selected_player", this._id) ? "selected" : '';
};
Template.leaderboard.events({
'click input.inc': function () {
Players.update(Session.get("selected_player"), {$inc: {score: 5}});
}
});
Template.player.events({
'click': function () {
Session.set("selected_player", this._id);
console.log(this._id);
}
});
}
如您所见,this._id 从未设置(例如this._id = some_id;),那么程序是如何获取它的呢?它如何知道选择了哪个玩家?
您可以观看有关该示例的视频并在此处获取其余代码:Leader Board Example
【问题讨论】:
标签: javascript meteor handlebars.js