【发布时间】:2014-02-11 21:18:47
【问题描述】:
假设我有一个如下模板:
start
{{#if data}}
data
{{/if}}
end
无论我传递给模板什么,它都会有两个额外的换行符:
start
data
end
有没有办法让 Handlebars 不生成标签占用的换行符(不移动标签本身)?例如。
start
data
end
我想要这个的原因是因为在某些情况下(比如在 XML 中),换行是不可取的。
例如:
<parent>
{{#each}}
<child>{{.}}</child>
{{/each}}
</parent>
会生成
<parent>
<child>foo</child>
<child>bar</child>
</parent>
将 {{#each}}、{{/each}} 折叠成一行会导致 Handlebars 也在一行上生成列表。例如,这个:
<parent>
{{#each}}<child>{{.}}</child>{{/each}}
</parent>
会生成
<parent>
<child>foo</child><child>bar</child>
</parent>
所以为了生成没有多余换行符的 XML,我的模板最终看起来像这样:
<parent>{{#each}}
<child>{{.}}{{/each}}
</parent>
谢谢!
【问题讨论】:
-
您是否找到了不涉及以不同编码保存文档的解决方案?
-
@MarkLopez 是的,你可以试试这个:handlebarsjs.com/block_helpers.html#whitespace-control
-
具有讽刺意味的是,我找到了解决问题的另一种方法。我的 IDE 使用 Windows 系统上常见的第二个换行符保存文件。手柄条没有正确删除字符。
标签: handlebars.js