使用ecmascript时无法访问meteor

时间:2015-11-25 15:00:04

标签: scope this ecmascript-6 arrow-functions

当使用带有ecmascript箭头符号的流星时,使用'这个'访问文档中描述的值总是失败。例如:

 Template.temp.onCreated(()=> {
      this.var = new ReactiveVar("")
 })

然后通过以下方式访问它:

 Template.instance().var

总是失败。几乎在任何使用“这个”的情况下都是一致的。在流星,客户端或服务器端。 当从客户检查时,我可以看到"这个"编译成" _this"这总是导致代码失败。

代码编译成:

 _this = this
 Template.temp.onCreated(function() {
      _this.var = new ReactiveVar("")
 })

感谢任何建议。

1 个答案:

答案 0 :(得分:1)

这是因为箭头函数在创建时绑定到范围。在您的情况下,在创建时,范围是全局的,因此您的函数范围是全局范围。

总之,这种行为是正确的设计。

如果不合适,您不应使用箭头功能。它不仅仅是一个"短手"保存键入几个字符。