Усыновать список усов, если он не пуст.

Я хотел бы использовать Mustache для отображения неупорядоченного списка HTML, только если объект списка не пуст. Поэтому я хотел бы:

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

если в списке есть элементы и ничего, если список пуст (даже не теги ul)

Как я могу это сделать?

edit: моя структура данных:

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

Ответ 1

Если вы не хотите или не можете переформатировать свои данные, вы также можете просто проверить items.length перед рендерингом тегов <ul>. Некоторые люди недовольны этим, но это определенно альтернатива Майку.

{{#items.length}}
    <ul>
        {{items}}
            <li>{{property}}</li>
        {{/items}}
    </ul>
{{/items.length}}

Ответ 2

Вам необходимо переформатировать структуру данных:

{
    "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/