车把代码在Ember Model字段内。如何评价?

时间:2016-01-22 15:10:10

标签: javascript ember.js handlebars.js

我们说我有一些html字段的模型。该字段包含一些句柄代码。例如

<div class="foo">
  {{model.title}}
</div>

问题是,当我尝试迭代模型并渲染html字段时,它不会评估其中的把手代码。

{{#each models as |model|}}
  {{{model.html}}}
{{/each}}

1 个答案:

答案 0 :(得分:0)

这是一个想法,创建一个Handlebars助手,它将编译把手。

通过这个样本,我相信你可以构建一些适合你需求的东西:

&#13;
&#13;
<script type="text/javascript" src="http://builds.handlebarsjs.com.s3.amazonaws.com/handlebars.min-latest.js"></script>
<script>
  var data = [{
    "title": "Hey",
    "subtitle": "I'm an inner handlebar template.",
    "html": '<h1>{{title}}</h1><h2>{{subtitle}}</h2>'
  }, {
    "title": "Nice!",
    "html": '<h1>{{title}}</h1>'
  }];
  
  /** Handlebar helper that will compile the content passed, with the data at index **/
  Handlebars.registerHelper("compile", function(content, index) {
    var template = Handlebars.compile(content);
    return template(data[index]);
  });

  var content = '{{#each .}}\
    {{{compile html @index}}}\
  {{/each}}';

  var template = Handlebars.compile(content);
  
  document.body.innerHTML = template(data);

</script>
&#13;
&#13;
&#13;

我从未使用过ember,但我相信你可以轻松使用它;)