programing

Handlebars.js 각 루프 범위 밖의 변수에 액세스합니다.

firstcheck 2023. 1. 31. 21:05
반응형

Handlebars.js 각 루프 범위 밖의 변수에 액세스합니다.

핸들 바.js 템플릿은 다음과 같습니다.

{{externalValue}}

<select name="test">
    {{#each myCollection}}
       <option value="{{id}}">{{title}} {{externalValue}}</option>
    {{/each}}
</select>

생성된 출력은 다음과 같습니다.

myExternalValue

<select name="test">
       <option value="1">First element </option>
       <option value="2">Second element </option>
       <option value="3">Third element </option>
</select>

예상대로라면id그리고.title모든 요소의 분야myCollection제 선택을 생성하기 위해서요그리고 선택권 밖에는externalValue변수가 올바르게 인쇄되었습니다("myExternalValue").

불행하게도, 옵션의 텍스트에서externalValue값은 인쇄되지 않습니다.

궁금한 점은 루프 내에서 각각 핸들바.js 범위 밖의 변수에 어떻게 접근할 수 있는가 하는 것입니다.

해라

<option value="{{id}}">{{title}} {{../externalValue}}</option>

../경로 세그먼트는 원하는 부모 템플릿 범위를 참조합니다.

또는 다음과 같이 절대 경로를 사용할 수 있습니다.

<option value="{{id}}">{{title}} {{@root.user.path.to.externalValue}}</option>

이 주제에 대한 문서화를 위해 404와 많은 링크를 보았습니다.

이 제품으로 업데이트하면 2020년 4월 1일에 작동합니다.

https://handlebarsjs.com/guide/expressions.html#path-expressions

#with 및 #와 같은 일부 도우미를 사용하면 중첩된 개체로 이동할 수 있습니다.../ 세그먼트를 경로에 포함하면 핸들 바는 다시 상위 컨텍스트로 변경됩니다.

    {{#each people}}
    {{../prefix}} {{firstname}} 
    {{/each}}

코멘트 컨텍스트에서 이름이 인쇄되어 있어도 메인콘텍스트(root-object)로 돌아가 프리픽스를 취득할 수 있습니다.

경고

../이(가) 해결할 정확한 값은 블록을 호출하는 도우미에 따라 달라집니다.컨텍스트가 변경될 때만 ../를 사용해야 합니다.{{#each}}와 같은 도우미의 자녀는 ../를 사용해야 하지만 {{#if}와 같은 도우미의 자녀는 사용하지 않습니다.

{{permalink}}
{{#each comments}}
  {{../permalink}}

  {{#if title}}
    {{../permalink}}
  {{/if}}
{{/each}}

이 예에서는 위의 모든 것이 다른 블록 내에 있어도 동일한 프레픽스 값을 참조하고 있습니다.이 동작은 Handlebars 4에서 새로운 것으로 릴리즈 노트에서는 이전 동작과 이행 계획에 대해 설명합니다.

원래 질문에 대한 답변은 아니지만, 비슷한 문제에 직면했습니다.그 안에 변수를 렌더링하지 않은 커스텀 도우미가 있습니다.

내 도우미는 핸들바와 비슷했다.if도우미, 그러니까 그 도우미는 필요없었어야 했어요../path구문을 사용합니다.알고 보니 도우미를 등록할 때 뚱뚱한 화살표 기능을 사용하고 있었습니다.this뚱뚱한 화살표 기능 안에서는 다릅니다.

변경:

Handlebars.registerHelper('ifeq', (v1, v2, options) => {    

대상:

Handlebars.registerHelper('ifeq', function (v1, v2, options)  {

고쳐줘

언급URL : https://stackoverflow.com/questions/13645084/access-a-variable-outside-the-scope-of-a-handlebars-js-each-loop

반응형