예를 들어 리스트에 데이터가 있으면 아이템 목록을 보여주고 없을 경우 “조회된 결과가 없습니다” 이런식으로 화면을 렌더링 하고 싶을때 아래와 같이 반복문인 “each” 와 함께 “else”를 같이 사용해 주시면 됩니다.
{{#each items}}<div>{{itemName}}</div>{{else}}<div>no item</div>{{/each}}
콜렉션에 데이터가 존재할 경우(Case1)와 비어있는 경우(Case2) 각각 실행 결과 입니다.
/* Case1 */ { "items": [ { "itemName": "item1" }, { "itemName": "item2" }, { "itemName": "item3"} ]}
/* Case2 */ { "items": []}
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
<!-- Case1 -->
<div>item1</div>
<div>item2</div>
<div>item3</div>
<!-- Case2 -->
<div>no item</div>
아래와 같이 if문과 함께 length 속성을 이용해서 분기 처리하는 것도 가능합니다. 콜렉션이 비어 있어 ength가 0을 리턴한다면 거짓조건에 해당하여 조건문 안의 엘리먼트는 렌더링 되지 않습니다.
{{#if items.length}}
…render
{{/if}}
'Program > Handlebars' 카테고리의 다른 글
[Handlebars] 배열 index 로 직접 접근하기 (0) | 2020.11.27 |
---|