Mustache - ¿Cómo detectar la matriz no está vacía?


Quiero implementar la siguiente lógica con Bigote:

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

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

¿Debo modificar la estructura users para satisfacer la necesidad? Por ejemplo:

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

// eg. data = { hasUsers: true, users: ['Tom', 'Jerry'] }
Author: Anirvan, 2012-07-25

2 answers

Lo siento, esto puede ser demasiado tarde. Pero tenía requisitos similares y encontré una mejor manera de hacer esto:

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

Muestra de trabajo aquí: http://jsfiddle.net/eSvdb /

 52
Author: Ambarish Chaudhari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-13 13:39:27

Usando {{#users.length}} funciona muy bien si desea que la instrucción interna se repita para cada elemento de la matriz, pero si solo desea que una instrucción solo se ejecute una vez , puede usar:

{{#users.0}}
...
{{/users.0}}
{{^users.0}}
...
{{/users.0}}
 21
Author: thouliha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-17 15:29:54