【问题标题】:Handlebars helper with ES6ES6 的车把助手
【发布时间】:2016-05-16 09:18:02
【问题描述】:

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

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

帮助器的定义如下:

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

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

【问题讨论】:

  • 你在使用 babel 吗?
  • @emd 是的,当然。
  • 只写一个普通函数而不是箭头函数。

标签: javascript handlebars.js handlebarshelper


【解决方案1】:

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

Cannot read property '_sections' of null 

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

这就是原因,用 Mozilla 的一篇精彩文章的话来说。

ES6 in depth arrow functions

这是什么?

普通函数之间的行为有一个细微差别 函数和箭头函数。箭头函数没有自己的 这个值。箭头函数中 this 的值总是 从封闭范围继承。

展望未来,在同一篇文章中:

将非箭头函数用于将使用 object.method() 语法。这些是将收到的功能 从他们的调用者那里得到这个值。

【讨论】:

    猜你喜欢
    • 2020-04-02
    • 2013-02-05
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多