捕获把手模板作为字符串

时间:2014-05-27 20:24:07

标签: ember.js handlebars.js

我有一个模板,我想将其输出捕获为一个字符串,我可以存储在模型上。例如:

我正在使用Ember Rails,因此我没有脚本标记

app / assets / javascripts / templates / person_as_xml.handlebars

<person>
  <name>{{name}}</name>
  <children>
  {{#each children}}
    <kid><name>{{name}}</name></kid>
  {{/each}}
  </children>
</person>

然后我想,也许是在行动中:

actions: {
  save: function(person){
    person.xml_representation = Handlebars.render_template("person_as_xml.handlebars", person);
    person.save();
  }
}

显然我编写了render_template的语法,但这基本上就是我想要做的。我该怎么办?

1 个答案:

答案 0 :(得分:1)

var source = "<person><name>{{name}}</name><children>{{#each children}}<kid><name>{{name}}</name></kid>{{/each}}</children></person>";
var template = Handlebars.compile(source);

var data = { "name": "Alan", "children": [{"name": "Jimmy", "age": "12"}, {"name": "Sally", "age": "4"}]};
var result = template(data);

我相信这是你想要完成的。这将输出:

<person>
  <name>
    Alan
  </name>
  <children>
    <kid>
      <name>
        Jimmy
      </name>
    </kid>
    <kid>
      <name>Sally</name>
    </kid>
  </children>
</person>

我还没有把你的HBS文件放到这个字符串中,但是我认为你可以找到一种在你的应用程序中有意义的方法。