流星辅助函数,lambdas和lexical这个

时间:2015-11-18 07:28:50

标签: javascript meteor lambda ecmascript-6

天儿真好, 我读过meteor正在进行所有ecmascript 6 - 并且认为很棒......“我再也不必写'函数'了 - 所以很快就将一堆函数改为lambdas ......只是发现它不起作用:(

如果你在meteor中编写一个辅助函数 - 你得到了在“this”属性中传入的数据上下文 - 当然,lambdas使用了一个词汇 - 所以我非常简单地理解了这个问题。

事情是 - 对我来说不明显的是解决方案 - 任何想法如何使用()=>制作辅助函数需要当前数据上下文的符号?除了“这个”之外它似乎没有生活吗?

2 个答案:

答案 0 :(得分:2)

使用速记将函数定义为对象属性:

Template.someTemplate.helpers({
  someHelper() {
    console.log(this);
  }
});

但如果你真的想使用() =>语法,可能会对使用Template.currentData()代替this感兴趣:

Template.someTemplate.helpers({
  someHelper: () => {
    console.log(Template.currentData());
  }
});

来自documentation

  

<强> Template.currentData()

     

在帮助器内部,返回DOM节点所在的数据上下文   使用了助手。

答案 1 :(得分:1)

ECMAScript 2015并未弃用function()。箭头函数是 不是 的简写语法,它们具有不同的语义,最值得注意的是,词法this绑定。

您无法在箭头功能中使用上下文this - 请改用标准函数。