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'] }
申し訳ありませんが、これでは遅すぎる場合があります。しかし、私は同様の要件を持っていて、これを行うより良い方法を見つけました:
{{#users.length}}
<ul>
{{#users}}
<li>{{.}}</li>
{{/users}}
</ul>
{{/users.length}}
{{^users.length}}
<p>No Users</p>
{{/users.length}}
ここでの作業サンプル: http://jsfiddle.net/eSvdb/
{{#users.length}}の使用は、配列のすべての要素に対して内部ステートメントを繰り返したい場合はうまく機能しますが、ステートメントでonceのみを実行したい場合は、以下を使用できます。
{{#users.0}}
...
{{/users.0}}
{{^users.0}}
...
{{/users.0}}