当使用带有ecmascript箭头符号的流星时,使用'这个'访问文档中描述的值总是失败。例如:
Template.temp.onCreated(()=> {
this.var = new ReactiveVar("")
})
然后通过以下方式访问它:
Template.instance().var
总是失败。几乎在任何使用“这个”的情况下都是一致的。在流星,客户端或服务器端。 当从客户检查时,我可以看到"这个"编译成" _this"这总是导致代码失败。
代码编译成:
_this = this
Template.temp.onCreated(function() {
_this.var = new ReactiveVar("")
})
感谢任何建议。
答案 0 :(得分:1)
这是因为箭头函数在创建时绑定到范围。在您的情况下,在创建时,范围是全局的,因此您的函数范围是全局范围。
总之,这种行为是正确的设计。
如果不合适,您不应使用箭头功能。它不仅仅是一个"短手"保存键入几个字符。