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