小胡子和车把都很棒。我喜欢它们,因为它们各自的简单和卓越。Mustache 因为它是一个模板,所以它可以在很多地方和车把上工作,因为它只提供了一些更多的功能。
我面临的挑战是,它们似乎已被实现为输出 HTML 或其他标签成对且没有分隔符的文档结构。
为了进一步澄清,如果您有一个将在列表中输出的项目数组,那么这很好用:
<ul>
{{#each items}}
<li>{{name}}</li>
{{/each}}
</ul>
这很好用。但是如果你想输出类似 JSON 的东西:
[
{{#each items}}
{ name:{{name}} }
{{/each}}
]
这不起作用,因为 JSON 要求列表中的项目用逗号分隔。而且你不能在最里面的 '}' 后面加上逗号,因为这也会导致错误。
在一些帖子/建议中,人们要求将可选的分隔符属性添加到#each 或添加#join。一位提交者说它应该作为插件实现,因为核心需要简单。
抛开政治。能够将 javascript 对象格式化为 JSON 字符串似乎非常适合模板。
**最后一个想法。实际上可能有更好的 Javascript Idiom 用于重新格式化 JavaScript 对象。我想这也会很有趣。
PS:我喜欢这个模板的一个原因是它可以自我记录。
更新:
handlebarsjs 团队的@Kevin 能够创建一个“帮助器”功能来实现我所缺少的功能。它不会很快成为核心,但该代码有效:
[
{{#join items sep=','}}
{ name:{{name}} }
{{/join}}
]