车把:return helper 的 hash

Handlebars: return hash from helper

我可以 return 从 Handlebars helper 哈希吗?我试过这个:

在我看来:

    initialize: ->
      super
      this.hash = {key1: 'test1', key2: 'test2'}
      Handlebars.registerHelper 'show', =>
        return this.hash

在模板中:

{{show.key1}}

我做错了什么?谢谢!

车把会看到这个:

{{show.key1}}

作为访问 show 变量key1 属性 的尝试,它不会知道 show 在这种情况下应该指的是您的 show 助手 。这只是 Handlebars 语法的一部分,我认为您无能为力。

但是,您可以将 key1 作为参数传递给 show 助手。如果您这样定义助手:

Handlebars.registerHelper 'show', (key, context) =>
    @hash[key]

然后像这样使用它:

{{show "key1"}}

然后你会得到你期待的结果。

演示:https://jsfiddle.net/wrykfxyj/

找到另一种方法。你可以像这样将上下文传递给条件助手:

帮手:

      this.showAttributes = {title: 'title1', author: 'author1'}

      Handlebars.registerHelper 'show', (cond) =>
        return cond.fn(this.showAttributes)

在模板中:

{{#show}}
    {{title}}
    {{author}}
{{/show}}

工作得很好。