json 객체를 사용하여 렌더링되는 Handlebars 템플릿이 있습니다. 이 json에서 나는 배열을 보내고 있습니다. 이렇게 :
var json = {
"array":["abc","def","ghi","jkl"]
}
이제 내 템플릿에서이 배열의 길이를 찾고 싶습니다. 다음과 같은 것 :
{{#each item}}
{{ array.length }}
{{/each}}
Handlebars 문서에서 찾을 수 없습니다.
답변
내 잘못이야….
{{array.length}}
실제로 템플릿 내부에서 작동했습니다. 여기에 게시하기 전에 확인 / 테스트해야합니다.
답변
이 경우 각 블록 내에서 각각의 부모 변수를 참조해야합니다.
{{#each array}}
{{../array.length}}
{{/each}}
나는 당신의 변수가 “배열”이라는 이름이 아마 문제를 합친다고 생각합니다. 명확히하기 위해 몇 가지 다른 JSON을 가정 해 보겠습니다.
var json = {
"fruit":["apple","orange","banana"]
};
그래서 이렇게 :
<ul>
{{#each fruit}}
<li>{{this}} {{@index}} {{../fruit.length}}</li>
{{/each}}
</ul>
산출 할 것 :
<ul>
<li>apple 0 3</li>
<li>orange 1 3</li>
<li>banana 2 3</li>
</ul>
답변
이를 처리하기 위해 간단한 도우미를 정의 할 수 있습니다.
Handlebars.registerHelper('get_length', function (obj) {
return obj.length;
});
그런 다음 템플릿에서 사용하십시오.
{{get_length some_object}}
답변
콘텐츠를 표시하기 위해 빈 목록을 테스트하는 경우 … 핸들 바를 사용하는 Ember.js에서 #each에 대해 else를 가질 수 있습니다.
{{#each blah as |blah|}}
{{else}}
// If array is empty
{{/each}}