每个都不像Handlebar那样工作

时间:2015-09-30 15:05:13

标签: javascript ember.js handlebars.js

在使用Handlebar 4.0.3的应用中,我有这个简单的模板:

{{#each certificates}}
  <tr>
    <td data-title='Certification'>{{this}}</td>
  </tr>
{{/each}}

我使用这样编译:

result = template(certificates: ['test'])

我有这个结果:

<table class="table table-hover table-condensed tablesorter">
  <tbody><tr>
    <td data-title="Certification">[object Object]</td>
  </tr></tbody>
</table>

我想我应该“测试”而不是“[object Object]”。

我试过这个模板:

{{#each certificates}}
<tr>
  <td data-title='Certification'>{{this}}</td>
  <td data-title='Certification'>{{name}}</td>
</tr>
{{/each}}

这个JavaScript:

result = template({ certificates: [{name: 'Name'}]})

我有结果:

<table class="table table-hover table-condensed tablesorter">
  <tbody><tr>
    <td data-title="Certification">[object Object]</td>
    <td data-title="Certification"></td>
  </tr></tbody>
</table>

如您所见,{{name}}没有提供任何内容,而是“名称”。

我做错了吗?

编辑1

我发现了问题。

我有这个HTML:

  <div id='modal-site'>
    <table>
      <tbody>
        {{#each site.certificates}}
        <tr>
          <td>{{this.name}}</td>
        </tr>
        {{/each}}
      </tbody>
    </table>
  </div>
</div>

当我这样做$('#modal-site').html()时,我得到了这个结果:

{{#each site.certificates}}

{{/each}}
<table>
  <tbody><tr>
    <td>{{this.name}}</td>
  </tr></tbody>
</table>

each在外面,所以把手无法正常工作。你对解决方案有所了解吗?

2 个答案:

答案 0 :(得分:0)

对于模板的第二个实现,如果要访问字符串数据,则应在HTML中使用{{this.name}}

答案 1 :(得分:0)

使用以下语法:

'prettify-symbols-alist