Javascript 这是什么;谁的领导委员会的例子?
在meteor的leader board示例中,有一段代码使用了这个。设置“selected_player”的id,该id用于更新player数据库。以下是客户端代码:Javascript 这是什么;谁的领导委员会的例子?,javascript,meteor,handlebars.js,Javascript,Meteor,Handlebars.js,在meteor的leader board示例中,有一段代码使用了这个。设置“selected_player”的id,该id用于更新player数据库。以下是客户端代码: Template.leaderboard.players = function () { return Players.find({}, {sort: {score: -1, name: 1}}); }; Template.leaderboard.selected_name = function () {
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.\u id从未设置过(例如this.\u id=some\u id;
),那么程序是如何获得它的?它如何知道选择了哪个玩家
您可以查看有关该示例的视频,并在此处获取其余代码:Meteor使用模板系统(带有一些扩展)Template.player.selected
是一个模板帮助程序…其中此
等于当前的“上下文”。这意味着This.\u id
等于正在渲染/显示的播放器的\u id
更多信息请参见车把文档部分。Meteor使用模板系统(带有一些扩展)Template.player.selected
是一个模板帮助程序…其中此
等于当前的“上下文”。这意味着This.\u id
等于正在渲染/显示的播放器的\u id
有关更多信息,请参阅车把文档部分。Meteor使用的模板引擎的文档说明:
助手的实现可以通过this
访问当前数据上下文
然后,您必须了解数据上下文是如何工作的。这包括在:
基本上,每当您使用块标记(如#each
)时,它都会创建一个新的数据上下文,在该上下文中对助手方法和块进行求值
对于#each
,数据上下文在集合的每个对象上循环
我们还可以通过以下方式进一步观察事物:
Template.player.events({
'click': function () {
Session.set('selectedPlayer', this._id);
console.log(this._id)
console.log(this.constructor.toString())
console.log(Object.getOwnPropertyNames(this))
console.log(typeof(this._id))
}
});
当我们点击科学家时,浏览器控制台上的输出:
function Object() {
[native code]
}
Array [ "name", "score", "_id" ]
CdpeDAcEnkdFF3Yu2
string
在本例中,数据上下文对应于Mongo.Collection.find()
的输出,它们是MongoDB文档<代码>\u id由Mongo自动添加
在块标记内部,当前数据上下文的特性现在可以直接使用,如中所示:
<span class="name">{{name}}</span>
<span class="score">{{score}}</span>
{{name}
{{score}}
Meteor使用的模板引擎的文档说明:
助手的实现可以通过this
访问当前数据上下文
然后,您必须了解数据上下文是如何工作的。这包括在:
基本上,每当您使用块标记(如#each
)时,它都会创建一个新的数据上下文,在该上下文中对助手方法和块进行求值
对于#each
,数据上下文在集合的每个对象上循环
我们还可以通过以下方式进一步观察事物:
Template.player.events({
'click': function () {
Session.set('selectedPlayer', this._id);
console.log(this._id)
console.log(this.constructor.toString())
console.log(Object.getOwnPropertyNames(this))
console.log(typeof(this._id))
}
});
当我们点击科学家时,浏览器控制台上的输出:
function Object() {
[native code]
}
Array [ "name", "score", "_id" ]
CdpeDAcEnkdFF3Yu2
string
在本例中,数据上下文对应于Mongo.Collection.find()
的输出,它们是MongoDB文档<代码>\u id由Mongo自动添加
在块标记内部,当前数据上下文的特性现在可以直接使用,如中所示:
<span class="name">{{name}}</span>
<span class="score">{{score}}</span>
{{name}
{{score}}
此处此。\u id是mongodb中当前表示项的对象id。此处您要更新记录。要更新该记录,您应该有一个参考值,因此此处为此。\u id是更新记录的参考值。此处此。\u id是mongodb中当前表示项的对象id。此处您需要要更新记录。要更新该记录,您应该有一个参考值,所以这里是。\ u id是您更新记录的参考值