如果不是空的,小胡子渲染列表

时间:2012-10-25 17:45:22

标签: mustache

我想使用Mustache仅在列表对象不为空时呈现HTML无序列表。所以我想:

<ul>
    <li>item 1</li>
    <li>item 2</li>
</ul>

如果列表中有元素而没有,如果列表为空(甚至不是ul标签)

我该怎么做?

编辑:我的数据结构是:

{ "list": ["first item", "second item"] }

2 个答案:

答案 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/

相关问题