[handlebars.js] handlerbars.js 목록이 비어 있는지 확인

Handlebars.js 템플릿에서 목록 / 컬렉션을 반복하기 전에 컬렉션 또는 목록이 null인지 비어 있는지 확인하는 방법이 있습니까?

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

{{/list}}



{{#each items}}

{{/each}}



답변

“each”태그는 “else”섹션도 가질 수 있습니다. 따라서 가장 간단한 형식은 다음과 같습니다.

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


답변

당신은 당신이 표시 할 것을 무언가가있는 경우 한 번배열에 데이터가있는 경우에만 사용을

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

.length 빈 배열에 대해 0을 반환하므로 실제 거짓 값을 얻었습니다.


답변

좋아, 생각보다 간단합니다.

{{#if items}}
// render items

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

{{else}}
// render empty
{{/if}}


답변

컬렉션 (커서)이 비어 있는지 확인하려면 이전 답변이 유용하지 않습니다. 대신 다음 count()메서드 를 사용해야합니다 .

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


답변

{{#if}} 위에 {{#each}}를 사용해야하는 모든 사용자를위한 것입니다 (예 : for 루프 내부의 if 루프). 세 가지 다른 배열 목록이 있습니까?

if 문 내에서 조회를 사용하면 문제가 해결됩니다. 위의 답변으로 내 문제가 해결되지 않았습니다.

다음은 내 코드입니다.

{{#each OtherRandomItems}}

  {{this}}

  {{lookup ../AnotherRandomItems @index}}

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

{{/each}}


답변