2016-07-07 3 views
0

핸들 막대 사용자 정의 블록 도우미 및 조건부 도우미에 대해 알아 내려고, jsfiddle에 간단한 예제를 만들었습니다. 사용자 지정 도우미는 true를 반환하지만, 조건식이 예에서 제대로 안될 일 이죠 블록 도우미조건부 도우미가 핸들 막대에서 예상대로 작동하지 않습니다.

<script id="test" type="text/x-handlebars-template"> 
<h3>{{title}}</h3> 
<p>custom helper returns: {{isCategory}}</p> 
<p>conditional result: {{#if isCategory}}yes{{else}}no{{/if}}</p> 
<p><em>I would expect the result to be 'yes'</em></p> 
</script> 

에서 전달 된 값에 올바르게 응답 표시되지 않습니다?

답변

1

조건부 {{#if isCategory}}은 데이터 개체에 isCategory을 찾고 존재하지 않기 때문에 찾고 있습니다. 거짓/아니요.

조건부 블록은 사용자 지정 도우미를 평가하지 않으며 템플릿에 전달 된 데이터 개체를 조사합니다.

+0

좋습니다. 사용자 정의 도우미는 dom에 삽입 할 코드를 반환합니다. 그것은 내가 시도한 것과 같은 다른 목적으로 사용될 수 없습니다. 감사. – Greg

+0

당신이 할 수있는 한 가지는'{{#if}} '대신 사용할 수있는 자신 만의 조건부 블록 도우미를 작성하는 것입니다. 이것의 한 예가 지금 작업하고있는 프로젝트에 있습니다. 초기 페이지로드시 모든 사용자 권한을 부여하는 SPA입니다. 사용자가 필요한 권한을 가지고 있는지 여부에 따라 숨기거나 표시하려는 조건부 도우미에게 필요한 권한이 있는지 확인합니다. '{{#permission'CREATE_USERS '}} {{/ permission}' –

+0

이것은 본질적으로 성취하려는 것입니다. {{#permission}} 예에서 블록 도우미가 사용자 생성 버튼을 표시하거나 숨기는 부울을 반환합니까, 아니면 버튼 html을 반환하는지 (또는 표시하지 않는 것입니까?)? – Greg

관련 문제