2

小胡子和车把都很棒。我喜欢它们,因为它们各自的简单和卓越。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}}
]
4

0 回答 0