web-dev-qa-db-ja.com

Moustache-アレイを検出する方法は空ではありませんか?

Mustacheを使用して次のロジックを実装したいと思います。

{{#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'] }
37
Trantor Liu

申し訳ありませんが、これでは遅すぎる場合があります。しかし、私は同様の要件を持っていて、これを行うより良い方法を見つけました:

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

ここでの作業サンプル: http://jsfiddle.net/eSvdb/

67

{{#users.length}}の使用は、配列のすべての要素に対して内部ステートメントを繰り返したい場合はうまく機能しますが、ステートメントでonceのみを実行したい場合は、以下を使用できます。

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