把手在变量中展开json并进行评估

时间:2016-02-10 19:37:20

标签: javascript json handlebars.js

我有一个传递JSON对象的把手模板。我可以渲染所有这些,但是一些字符串实际上包含模板信息,这样当我渲染它时,我得到这样的东西:

index.handlebars片段:

    {{#each json}}
      <td> {{tooltip}}</td>
    {{/each}}

输出(其中e1和f1是json对象的一部分):

Blah,blah {{e1}} {{f1}} blah blah

有没有办法让把手扩展变量并在其上下文中对其进行评估?

我可以将对象发送到辅助函数并且可以通过解析它来返回字符串来破坏我自己的方式,但我无法找到一种方法来获得把手基本上将其视为部分或扩展变量然后评估它。

1 个答案:

答案 0 :(得分:0)

我不认为你想要做的事情是可能的,如果是的话,我认为这不是一个好习惯。

虽然我不确定我是否会看到与创建字符串并将变量连接到模板之外的函数的区别。

例如,在我的Backbone / Marionette App中,我有

  templateHelpers: function() {
    return {
      tooltipString: "Blah, blah " + this.e1 + " " + this.f1 + " blah blah"
    };
  },

如果您真的不想在此模板中使用该代码,则另一种方法是将字符串移动到partial template

// Partial template
<td>Blah, blah {{ e1 }} {{ f1 }}) blah blah<td>

并将其称为

{{#each json}}
  <td>{{> myPartial tooltip}}</td>
{{/each}}

如果需要,您可以在对象中使用可变的部分模板名称来调用正确的部分模板。

{{> (lookup . 'partialTemplateVariable') }}