programing

핸들바의 인덱스로 액세스 어레이 항목에 액세스하려면 어떻게 해야 합니까?

nicescript 2022. 10. 30. 16:02
반응형

핸들바의 인덱스로 액세스 어레이 항목에 액세스하려면 어떻게 해야 합니까?

핸들 바 템플릿 내의 배열에 있는 항목의 인덱스를 지정하려고 합니다.

{
  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

반응형