Подтвердить что ты не робот

Усы. Как обнаружить массив не пуст?

Я хочу реализовать следующую логику с Усы:

{{#if users.length > 0}}
    <ul>
        {{#users}}
            <li>{{.}}</li>
        {{/users}}
    </ul>
{{/if}}

// eg. data = { users: ['Tom', 'Jerry'] }

Должен ли я изменить структуру users для удовлетворения потребностей? Например:

{{#hasUsers}}
    <ul>
        {{#users}}
            <li>{{.}}</li>
        {{/users}}
    </ul>
{{/hasUsers}}

// eg. data = { hasUsers: true, users: ['Tom', 'Jerry'] }
4b9b3361

Ответ 1

Извините, это может быть слишком поздно. Но у меня было подобное требование и нашлось лучший способ сделать это:

{{#users.length}}
    <ul>
        {{#users}}
            <li>{{.}}</li>
        {{/users}}
    </ul>
{{/users.length}}
{{^users.length}}
    <p>No Users</p>
{{/users.length}}

Рабочий пример здесь: http://jsfiddle.net/eSvdb/

Ответ 2

Использование {{# users.length}} отлично работает, если вы хотите, чтобы внутренний оператор повторялся для каждого элемента массива, но если вы хотите, чтобы оператор выполнял только один раз, вы можете Применение:

{{#users.0}}
...
{{/users.0}}
{{^users.0}}
...
{{/users.0}}