只有当列表对象不为空时,我才想使用 Mustache 来呈现 HTML 无序列表。所以我想:
<ul>
<li>item 1</li>
<li>item 2</li>
</ul>
如果列表有元素,如果列表为空则没有元素(甚至没有 ul 标签)
我怎样才能做到这一点?
编辑:我的数据结构是:
{ "list": ["first item", "second item"] }
只有当列表对象不为空时,我才想使用 Mustache 来呈现 HTML 无序列表。所以我想:
<ul>
<li>item 1</li>
<li>item 2</li>
</ul>
如果列表有元素,如果列表为空则没有元素(甚至没有 ul 标签)
我怎样才能做到这一点?
编辑:我的数据结构是:
{ "list": ["first item", "second item"] }
如果您不想或无法重新格式化您的数据,您也可以items.length
在渲染<ul>
标签之前进行检查。有些人对此不以为然,但这绝对是迈克答案的替代方案。
{{#items.length}}
<ul>
{{items}}
<li>{{property}}</li>
{{/items}}
</ul>
{{/items.length}}
您需要将数据结构重新格式化为:
{
"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/