我想使用Mustache仅在列表对象不为空时呈现HTML无序列表。所以我想:
<ul>
<li>item 1</li>
<li>item 2</li>
</ul>
如果列表中有元素而没有,如果列表为空(甚至不是ul标签)
我该怎么做?
编辑:我的数据结构是:
{ "list": ["first item", "second item"] }
答案 0 :(得分:21)
如果您不想或不能重新格式化数据,也可以在呈现items.length
标记之前检查<ul>
。有些人对此不以为然,但这肯定是迈克答案的替代品。
{{#items.length}}
<ul>
{{items}}
<li>{{property}}</li>
{{/items}}
</ul>
{{/items.length}}
答案 1 :(得分:7)
您需要将数据结构重新格式化为:
{
"list": {
"items": ["first item", "second item"]
}
}
你的Mustache模板现在就是这个
{{#list}}
<ul>
{{#items}}
<li>{{.}}</li>
{{/items}}
</ul>
{{/list}}
我制作了一个视频,解释了Mustache如何工作,以及如何使用PHP和JavaScript实现它。您可以在此处找到它:http://mikemclin.net/mustache-templates-for-php-and-javascript/