如何访问当前普通对象我迭代Meteor模板

时间:2015-11-17 12:06:20

标签: arrays meteor handlebars.js

我有一组普通对象(由助手返回,但它与问题无关):

Things = [{
  a: 'some thing'
}, {
  a: 'more thing'
}];

然后我在Meteor模板中迭代它:

{{#each Things}}
  <button>{{a}}</button>
{{/each}}

如果是收藏品,它是事件上下文的超级便捷捷径:

Template.whatever.events({
  'click button': () => console.log(this); // e.g., {a: 'some thing'}
});

但是对于普通对象,this快捷方式不起作用,它引用window对象。

如何从even处理程序中提取出each块的上下文的数组项,而不向迭代器显式添加一些唯一标识符?

1 个答案:

答案 0 :(得分:0)

这是因为您使用的是arrow es15语法。箭头语法在函数中保留this的上下文。我不确定为什么它适用于集合而不是对象数组,但如果使用function表示法,它将起作用。

Template.whatever.events({
  'click button': function () {
       console.log(this);  // e.g., {a: 'some thing'}
  }
});