回答:
あなたが表示することを何かを持っている場合は、一度や配列にデータがある場合にのみ、使用することを
{{#if items.length}}
//Render
{{/if}}
.length
空の配列の場合は0を返すため、実際の偽の値が得られます。
<ul>
タグを1回レンダリング<li>
し、リスト内の各項目のタグをレンダリングしたい。リストが空の場合、私は<ul>
をレンダリングしたく<p>empty list<p>
あり<ul>
ません。また、の内部のような何かをレンダリングしても意味がありません。
[]
偽として評価されます。@Drejcによる答えは、ハンドルバー仕様による正しい答えです。
OK、思ったより簡単です。
{{#if items}}
// render items
{{#each items}}
// render item
{{/each}}
{{else}}
// render empty
{{/if}}
if
ますが、ハンドルバーのドキュメントは非常に明確である: 『その引数の戻りが場合はfalse
、undefined
、null
、""
、0
、または[]
、ハンドルバーは、ブロックをレンダリングしません。』最初にドキュメントを確認する必要がありました。
コレクション(カーソル)が空かどうかを確認する場合は、前の回答は役に立たないため、代わりに次のcount()
メソッドを使用する必要があります。
{{#if items.count}}
<p>There is {{items.count}} item(s).</p>
{{else}}
<p>There is nothing</p>
{{/if}}
{{#if}}の上に{{#each}}を使用する必要がある人(つまり、forループ内のifループ)。彼らは3つの異なる配列のリストを持っていますか?
ifステートメント内でルックアップを使用すると、問題が解決します。上記の回答で問題が解決しなかったためです。
これが私のコードです、
{{#each OtherRandomItems}}
{{this}}
{{lookup ../AnotherRandomItems @index}}
{{#if (lookup ../RandomItems @index)}}
// render items
{{else}}
// render empty
{{/if}}
{{/each}}
#each
ようにタグをラップする場合、空の状態をでラップする必要はありません。<ul>
<li>
<ul>