web-dev-qa-db-fra.com

Moustache - Comment détecter le tableau n'est pas vide?

Je veux implémenter la logique suivante avec Moustache:

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

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

Dois-je modifier la structure users pour répondre au besoin? Par exemple:

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

// eg. data = { hasUsers: true, users: ['Tom', 'Jerry'] }
37
Trantor Liu

Désolé, c'est peut-être trop tard. Mais j'avais des exigences similaires et j'ai trouvé une meilleure façon de le faire:

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

Exemple de travail ici: http://jsfiddle.net/eSvdb/

67
Ambarish Chaudhari

L'utilisation de {{# users.length}} fonctionne très bien si vous voulez que l'instruction interne se répète pour chaque élément du tableau, mais si vous voulez qu'une instruction ne s'exécute que ne fois, vous pouvez utiliser:

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