使用 ecmascript 时无法访问流星

unable to access meteor this when using ecmascript

当使用 meteor 和 ecmascript 的箭头符号时,使用 'this' 访问文档中描述的值总是失败。例如:

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

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

 Template.instance().var

总是失败。这在流星、客户端或服务器端几乎所有 'this' 的使用中都是一致的。 从客户端检查时,我可以看到 "this" 被编译成“_this”,这总是导致代码失败。

代码编译成:

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

如有任何建议,我们将不胜感激。

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

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

你不应该在不合适的时候使用箭头函数。节省输入几个字符不只是"short-hand"。