1

假设我想在 Mustache 模板中呈现多个集合。我可能有这个:

some header content

{{#foos}}
some foo content
{{/foos}}

{{#bars}}
some bar content
{{/bars}}

some footer content

现在,假设foosand barsabove 都是非空的,那么一切都会看起来很好。但是如果foos是空的话,比如我会在“some header content”后面看到两个空行,很难看。另一方面,如果我省略了foosandbars部分之间的空行,那么当两个集合都是非空的时,它们之间就不会中断,这也很丑陋。

这是我认为可行的一种解决方案:

some header content

{{#foos}}
some foo content
{{/foos}}
{{#flag_that_foos_not_empty}}

{{/flag_that_foos_not_empty}}
{{#bars}}
some bar content
{{/bars}}

some footer content

但是模板很丑。

有没有什么干净的方法可以实现我在这里的目标:在集合末尾插入换行符,只有当集合不为空时?

需要明确的是:我意识到如果我正在为计算机生成文本(如 HTML),那么担心这将是一件非常荒谬的事情。在这种情况下,我尝试使用 Mustache 生成一些人类可读的内容,其中有吸引力的内容呈现很重要。

4

1 回答 1

1

像这样的东西可以解决问题,而且不会那么难看,IMO:

some header content

{{# has_foos }}
{{# foos }}
some foo content
{{/ foos }}

{{/ has_foos }}
{{# has_bars }}
{{# bars }}
some bar content
{{/ bars }}

{{/ has_bars }}
some footer content

根据您的 Mustache 实现,您也许可以将那些“有”标签替换为{{# foos.length }}.

于 2013-08-12T20:03:23.103 回答