핸들바의 인덱스로 액세스 어레이 항목에 액세스하려면 어떻게 해야 합니까?
핸들 바 템플릿 내의 배열에 있는 항목의 인덱스를 지정하려고 합니다.
{
people: [
{"name":"Yehuda Katz"},
{"name":"Luke"},
{"name":"Naomi"}
]
}
다음을 사용합니다.
<ul id="luke_should_be_here">
{{people[1].name}}
</ul>
상기가 불가능할 경우 어레이 내의 특정 항목에 액세스할 수 있는 도우미는 어떻게 작성해야 합니까?
이것을 시험해 보세요.
<ul id="luke_should_be_here">
{{people.1.name}}
</ul>
다음은 인덱스 앞에 점이 하나 더 추가되어 예상대로 작동합니다.여기서 인덱스에 다른 속성이 이어지는 경우 대괄호는 옵션입니다.
{{people.[1].name}}
{{people.1.name}}
단, 대괄호는 다음 항목에서 필요합니다.
{{#with people.[1]}}
{{name}}
{{/with}}
후자의 경우 각 괄호 없이 인덱스 번호를 사용하면 다음 중 하나가 됩니다.
Error: Parse error on line ...:
... {{#with people.1}}
-----------------------^
Expecting 'ID', got 'INTEGER'
덧붙여서: 괄호는 세그먼트 리터럴 구문에 사용되며, 그렇지 않으면 유효하지 않을 실제 식별자(인덱스 번호가 아님)를 나타냅니다.'유효한 식별자란 무엇인가'에 대한 자세한 내용은?
(YUI에서 핸들 바를 사용하여 테스트)
2.xx 업데이트
이제 를 사용할 수 있습니다.get
도우미:
(get people index)
인덱스가 문자열이어야 한다는 오류가 나타나면 다음을 수행하십시오.
(get people (concat index ""))
{{#each array}}
{{@index}}
{{/each}}
문서화되어 있지 않은 기능이 마음에 들지 않는 경우는, 다음의 Web 사이트에서도 같은 기능을 사용할 수 있습니다.
Handlebars.registerHelper('index_of', function(context,ndx) {
return context[ndx];
});
그런 다음 템플릿에서
{{#index_of this 1}}{{/index_of}}
저는 이 글을 쓴 후에야 입수할 수 있었습니다.
this.[0]
조력자를 직접 쓰지 않고서는 핸들바를 가지고 너무 멀리 갈 수 없습니다.
동적 변수를 사용하는 경우
이렇게 하면 안 돼요.
{{#each obj[key]}}
...
{{/each}}
다음 작업을 수행해야 합니다.
{{#each (lookup obj key)}}
...
{{/each}}
처음/마지막으로 가져오려면 이것을 시도해 보세요.
{{#each list}}
{{#if @first}}
<div class="active">
{{else}}
<div>
{{/if}}
{{/each}}
{{#each list}}
{{#if @last}}
<div class="last-element">
{{else}}
<div>
{{/if}}
{{/each}}
어레이 내에서 루핑하는 동안each
현재 항목의 컨텍스트에서 다른 어레이에 액세스하려면 다음과 같이 하십시오.
다음은 예제 데이터입니다.
[{이름: 'foo',attr: ['boo', 'boo']},{이름: '바',['far', 'zar']}]
여기 첫 번째 아이템을 넣을 핸들바입니다.attr
어레이를 설정합니다.
{{#각자}}명<p> {{this.name}} </p> {{#with this.attr}}<p> {{이것.[0]}}: </p>{{/with}} {{/각}}
이렇게 하면 출력됩니다.
<p> foo </p><p> boo </p> <p> 바 </p><p> 멀리 </p>
어레이의 이름이 지정되지 않은 경우에도 다음 구문을 사용할 수 있습니다(어레이만 템플릿에 전달됩니다).
<ul id="luke_should_be_here">
{{this.1.name}}
</ul>
저 같은 경우에는 커스텀 도우미 내의 어레이에 액세스하고 싶었습니다.
{{#ifCond arr.[@index] "foo" }}
그것은 효과가 없었지만, @julesbou가 제안한 답변은 효과가 있었다.
작업 코드:
{{#ifCond (lookup arr @index) "" }}
이게 도움이 됐으면 좋겠네요!건배.
언급URL : https://stackoverflow.com/questions/8044219/how-do-i-access-an-access-array-item-by-index-in-handlebars
'programing' 카테고리의 다른 글
JavaScript 문자열에서 악센트/분음 제거 (0) | 2022.10.30 |
---|---|
람다 식을 사용하여 stream().map(...)을 디버깅하는 방법 (0) | 2022.10.30 |
약속을 반환하는 Vuex 작업이 해결되거나 거부되지 않음 (0) | 2022.10.30 |
+ PHP의 어레이 연산자? (0) | 2022.10.30 |
NULL이 있는 고유 키 (0) | 2022.10.30 |