我正在从这本书http://meteortips.com/book/中学习Meteor,我不明白元素的识别是如何工作的。
我有一个循环:
{{#each player}}
    <li class="player {{selectedClass}}">{{_id}} {{name}}: {{score}}</li>
{{/each}}Inside player变量如下:
'player': function(){
    return PlayersList.find();
},PlayersList是一些收集球员和他们的分数。
"li“元素的"this._id”如何在“每个”循环中返回与{{_id}}相同的值?
   'click li.player': function(){
        var playerId = this._id;
   }如果"li“元素在”每一个“循环中,那么Meteor会自动设置它的值,这些值位于环形文档(PlayersList)的文件中,然后可以通过"this”关键字访问?或者通过"this“关键字一般可以访问什么?
谢谢你的解释..。
发布于 2015-03-03 23:04:05
在Meteor模板中有一个当前数据上下文的概念,您可以使用以下几种方法来设置这个当前数据上下文:
{{#each}}块帮助程序将当前数据上下文设置为集合的当前迭代项(Mongo.Collection游标或普通数组)。{{#with}}块帮助程序将当前数据上下文设置为传入的任何参数。{{> myTemplate dataContext}})传递,同样,您也可以使用动态模板包含语法{{> Template.dynamic template="myTemplate" data=dataContext}}动态地包含任何模板和任何数据上下文。iron:router,您可以为您的路由分配一个模板和一个数据上下文(以类似于动态模板包含的方式)。其结果是,在JS中的模板帮助程序和模板事件中,this关键字总是引用当前的数据上下文。
特别地,这意味着在click li.player事件中,当前数据上下文将是<li>项之一,这是由{{#each}}循环迭代的player文档。
还有其他访问当前数据上下文的选项,模板实例上声明了只读data 属性,还有一个名为Template.currentData()的特殊函数。
诚然,这有点令人困惑,下一个版本的Blaze ( Meteor模板渲染引擎)即将推出的特性之一就是通过确保更好的一致性和更好的可读性来解决这个问题。
https://stackoverflow.com/questions/28843502
复制相似问题