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}}