Handlebars:从helper返回hash

时间:2015-06-17 18:00:36

标签: javascript backbone.js coffeescript handlebars.js

我可以从Handlebars助手返回哈希吗?我试过这个:

在我看来:

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

在模板中:

{{show.key1}}

我做错了什么?谢谢!

2 个答案:

答案 0 :(得分:2)

把手会看到这个:

{{show.key1}}

作为尝试访问key1 变量show属性,它不知道在这种情况下show应该是请参阅您的show 帮助。这只是Handlebars语法的一部分,我不认为你可以采取任何措施。

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

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

然后像这样使用它:

{{show "key1"}}
然后,您将获得您期待的结果。

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

答案 1 :(得分:0)

找到另一种方式。哟可以将上下文传递给条件助手:

<强>助手:

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

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

在模板中:

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

完美无缺。