流星如何知道什么文件"这个"在事件中指的是

时间:2016-06-27 12:59:14

标签: mongodb meteor

我很难理解当我将事件添加到某个模板时,"这个"知道要参考的文件和集合。

示例:

Template.game.events({ 
  "click a.one-plus": function(event, template){ 
     event.preventDefault();
     Games.update({_id:this._id}, {$inc:{
       "teams.0.score":1
     }});
  },
}); 

1 个答案:

答案 0 :(得分:1)

this将引用与触发事件的模板(或模板片段)相关联的上下文。

让我们说你的模板是这样的:

<template name='myTemplate'>
   <button id='myButton'/>
   {{#each myList}}
       <button class='mySecondButton'/>
   {{/each}}
</template>

你已经定义了

Template.helpers({
  myList() {
     return [1,2,3];
  }
});

然后clickmyButton的上下文将包含this.myList()。 (如果您使用Router,则可能会使用不同的方式将数据绑定到模板。)

但请注意:在each迭代中,上下文将更改为当前迭代器元素。因此,this在这种情况下将分别为123,因此三个.mySecondButton按钮将看到不同的上下文。 each更改了上下文,with也是如此。