Handlebars.js 템플릿의 루트 컨텍스트에 액세스하기위한 기본 제공 방법이 있습니까? 헬퍼의 대부분은 중첩 된 컨텍스트를 추가하고 있기 때문에 해당 컨텍스트의 변수 앞에 ../를 써야만 액세스 할 수 있지만 각 개체, ifs 등이 많으면 실용적이지 않습니다.Handlebar.js 템플릿의 루트 컨텍스트에 대한 액세스
23
A
답변
42
사용 @root에 대한
<!-- app/assets/javascript/templates/my_content.hbs -->
<table class="table">
<tbody>
{{#each view.data.items}}
<tr>
<td>{{@key}}</td>
<td>
Hello from {{../view.registryName}}
</td>
</tr>
{{/each}}
</tbody>
</table>
체크 http://handlebarsjs.com/#paths : 각) more info
그러나 '../'
# app/assets/javascript/contents.coffee
body = HandlebarsTemplates['my_hbs_template']({
view:{
registryName: 'foo',
data: {items: {x: 'x'}}
}
})
템플릿으로 이전 컨텍스트에 액세스 할 수있는 가능성이있다. 이 핸들-v2.0.0.js
{{@root.somthing.nested_somthing}}
0
아니요 아직!
그것은 몇 번 제안되었으며 오픈 티켓이 : https://github.com/wycats/handlebars.js/issues/392
그들의 인수가 필요하지 않다는이지만 더 식별 할 수있는 성능 오버 헤드의 저렴한 수정의 경우 내가 왜 표시되지 않습니다는 포함될 수 없습니다.
2
네,
나는 언제나처럼 핸들에 내 JSON 데이터를 전달 ... 하나, 기본적으로
http://www.my2ndgeneration.com/TemplateLanguageDoc.aspx#xroot 볼이 도우미 및 정상에 당신을 데려 갈 것이다 빙고 {{xRoot을}} 추가 만들었습니다 이 :
{ data: self.data }
따라서 항상 아래 코드는 xRoot 태그가 보는 "데이터"를 반환하고 상단
Handlebars.JavaScriptCompiler.prototype.nameLookup = function (parent, name, type) {
if (name.indexOf("xRoot") === 0) {
return "data";
}
if (/^[0-9]+$/.test(name)) {
return parent + "[" + name + "]";
} else if (Handlebars.JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
return parent + "." + name;
}
else {
return parent + "['" + name + "']";
}
};
로 나를 소요
6
일단 문맥을 변경하면 템플릿의 루트 컨텍스트에 액세스 할 수 없습니다. (예 : 더 많은 정보
관련 문제
- 1. 컨텍스트에 액세스
- 2. Grails NPE가 루트 컨텍스트에 있습니까?
- 3. Ajax가없는 Handlebar.js?
- 4. Django Form Wizard : 양식의 컨텍스트에 대한 액세스
- 5. Jinja 확장 컨텍스트에 대한 액세스 권한이 있습니다.
- 6. 루트 템플릿의 조건부 TypoScript 상수
- 7. freemarker - 템플릿의 변수 설정에 대한 액세스
- 8. 렌더링 된 콜백에서 데이터 컨텍스트에 액세스
- 9. handlebar.js 비동기 데이터 도우미
- 10. Handlebar.js {{이}} 조건부 비교
- 11. Handlebar.js IE9에서의 메모리 누수
- 12. @RestController 빈은 excludeFilters에서 제외되었지만 루트 컨텍스트에 등록되었습니다.
- 13. BundleContextAware 클래스의 애플리케이션 컨텍스트에 액세스
- 14. 서버에 대한 루트 액세스 권한으로 어떻게 mysql 루트 암호를 변경하겠습니까?
- 15. 오버라이드의 개체 컨텍스트에 액세스 SaveChanges
- 16. 템플릿의 동적 세션 액세스
- 17. 템플릿의 Ionic2 배열 액세스
- 18. 템플릿의 개체 액세스
- 19. 템플릿의 요소 액세스
- 20. 데이터 흐름 인스턴스에 대한 루트 액세스
- 21. aws 우분투 인스턴스에 대한 FileZilla 루트 액세스
- 22. asynch 작업에서 UI 컨텍스트에 액세스
- 23. 스프링 MVC 컨텍스트 : 루트 응용 프로그램 컨텍스트에 beans 추가
- 24. wintersmith 옥 템플릿의 루트 상대 경로 대체
- 25. 파일 탐색기에서 루트 액세스
- 26. 템플릿의 ASP 요소가 현재 컨텍스트에 존재하지 않는 이유는 무엇입니까?
- 27. Handlebar.js 문이 작동하지 않는 경우
- 28. 키 누르기 이벤트의 데이터 컨텍스트에 액세스
- 29. NHibernate 인터셉터에서 현재 요청 컨텍스트에 액세스
- 30. django 템플릿의 모델 필드에 액세스
또한'each' 블록을 if''에 @root 사용할 수 있으며, 예를 들어,에 '{{#each @ root.somthing.nested_somthing}}' – user393274
소개 된 버전을 지적 해 주셔서 감사합니다. 핸들 바 (v.1.3.0.js)로 작업 할 때까지는 실패했습니다. –