1

HTML:

<div id="container"></div>

<script type="text/x-jquery-tmpl" id="tmpl">
  <div>{{=title}}</div>
  <div>
    {{#each cast}}
      {{#if $itemNumber == 1 }}{{=name}}{{else}}, {{=name}}{{/if}}        
    {{/each}}
  </div>
</script>

JS:

var json = [{ title: "Mission Impossible IV", cast: [ {name: "Tom Hanks"}, {name: "Jackie Chan"}, {name: "Tom Cruise"} ]}];

$("#container").html(
    $("#tmpl").render(json)
);

渲染如下:

Mission Impossible IV
Tom Hanks , Jackie Chan , Tom Cruise

问题:注意每个名称后的空格。但是,我在模板中没有空格,所有标签都聚集在一起{{#if $itemNumber == 1 }}{{=name}}{{else}}, {{=name}}{{/if}},因此,那些多余的空格不应该存在。

问题:关于这些额外空间如何进入那里的任何想法?

你可以在这里调整它:http: //jsbin.com/otiqun/2/edit

4

1 回答 1

1

{{/if}}和之间的换行符{{/each}}很可能被渲染为额外的空格,因为 HTML 将任意数量的连续空白字符压缩到一个空格中。尝试删除任何不必要的换行符,看看它是否能解决问题。

于 2012-01-25T16:32:23.087 回答