把手与ES6帮手

时间:2015-08-18 02:25:19

标签: javascript handlebars.js handlebarshelper

我想编写一个块帮助器来检查是否应该为某个角色显示一个部分:

{{#allowApprover "EMP"}} 
<!-- content -->
{{/allowApprover}}

帮手定义如下:

allowApprover: (currentRole, options) => {
     return permit(currentRole) ? options.fn(this) : options.inverse(this)
}

上面的代码不起作用,我猜是因为this在箭头中表现不同,但我不知道如何使这项工作,另一个问题, options.fn到底做了什么?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,出现此错误消息:

Cannot read property '_sections' of null 

正如@torazaburo评论的那样,在这种情况下,您应该编写常规函数而不是箭头函数。

这就是为什么,用Mozilla的一篇伟大文章的话来说。

ES6 in depth arrow functions

  

这是什么?

     

普通函数之间的行为有一个细微的差别   功能和箭头功能。箭头功能没有自己的功能   这个价值。箭头函数内的值始终为   继承自封闭范围。

前进,在同一篇文章中:

  

对于将使用的方法调用的方法使用非箭头函数   object.method()语法。这些是将获得的功能   从他们的来电者那里获得了这个价值。