web-dev-qa-db-ja.com

handlebars.jsリストが空かどうかを確認

Handlebars.jsには、リストまたはコレクションを繰り返し処理する前に、コレクションまたはリストがnullまたは空であるかどうかをチェックするテンプレートがありますか?

// if list is empty do some rendering ... otherwise do the normal
{{#list items}}

{{/list}}



{{#each items}}

{{/each}}
112
Drejc

「each」タグは「else」セクションも使用できます。したがって、最も単純な形式は次のとおりです。

{{#each items}}
// render item
{{else}}
// render empty
{{/each}}
199
Emre Efendi

表示したいものがある場合once配列にデータがある場合のみ

{{#if items.length}}
    //Render
{{/if}}

.lengthは空の配列に対して0を返すので、本当のfalsey値を達成しました。

217
Duane

思ったより簡単です。

{{#if items}}
// render items

{{#each items}}
// render item
{{/each}}

{{else}}
// render empty
{{/if}}
35
Drejc

コレクション(カーソル)が空であるかどうかを確認したい場合、前の回答は役に立ちません。代わりにcount()メソッドを使用する必要があります。

{{#if items.count}}
    <p>There is {{items.count}} item(s).</p>
{{else}}
    <p>There is nothing</p>
{{/if}}
7
Karl.S

{{#if}}の上に{{#each}}を使用する必要がある人(つまり、forループ内のifループ)。彼らは3つの異なる配列のリストを持っていますか?.

Ifステートメント内でルックアップを使用すると、問題が解決します。として、上記の答えは私の問題を解決しませんでした。

ここに私のコードがあります、

{{#each OtherRandomItems}}

  {{this}}

  {{lookup ../AnotherRandomItems @index}}

  {{#if (lookup ../RandomItems @index)}}
  // render items
  {{else}}
  // render empty
  {{/if}}

{{/each}}
1
Akarsh SEGGEMU