假设我想在Mustache模板中呈现多个集合。我可能有这个:
some header content
{{#foos}}
some foo content
{{/foos}}
{{#bars}}
some bar content
{{/bars}}
some footer content
现在,假设上面的foos
和bars
都是非空的,那么一切都会好起来的。但是,如果foos
为空,我会在“某些标题内容”之后看到两个空行,这很难看。另一方面,如果我省略foos
和bars
部分之间的空白行,那么当两个集合都非空时,它们之间就不会有中断,这也很难看。
以下是我认为可以解决的一个解决方案:
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生成一些人类可读的内容,其中内容的有吸引力的呈现很重要。
答案 0 :(得分: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实现,您可以替换那些" has"标记为{{# foos.length }}
。