2012-10-29 3 views
3

Ember.js 응용 프로그램에 Handlebars.js 도우미를 등록하려고합니다.이 도우미를 사용하면 이스케이프 처리하지 않고 렌더링 할 간단한 html 문자열 인 view 속성을 전달할 수 있습니다 . 내 템플릿은 다음과 같습니다 :이 경우Handlebars 도우미에 속성을 전달하는 방법

<span class="add-on">{{log view.append}}{{safeMarkup view.append}}</span> 

로그 문은, 콘솔에 제대로 <span>text</span> 같은 것을 html로 문자열을 출력합니다. 다음과 같이

내 도우미, safeMarkup이있다 : 아직

Handlebars.registerHelper('safeMarkup', (string) -> 
    return new Handlebars.SafeString(string) 
) 

, 무엇을 렌더링 도착하면 view.append 재산하지만 문자열 "view.append"자체의 값이 아닙니다! 이렇게 : <span class="add-on">view.append</span>. 어떤 아이디어가 여기에 잘못되어 있니? 감사

핸들에서
+0

당신이 할 수있는 'unbound' 도우미 (http://goo.gl/OenIM 참조)와 같은 일을하지만, 왜 직접 속성 대신 문자열인지 모르겠습니다. – louiscoquio

+0

어떤 종류의 것은'view.append'입니까? 당신의 도우미 안에서'console.log (string)'은 무엇을 말합니까? –

+0

문자열'view.append'는 다음과 같습니다. http://jsfiddle.net/E8UzU/ – louiscoquio

답변

2

: 응용 프로그램에서

{{span 'className'}} 

:

Handlebars.registerHelper('span', function(className) { 
    return new Handlebars.SafeString("<span class='"+Handlebars.Utils.escapeExpression(className)+"'></span>"); 
}); 
+0

몇 가지 설명을 추가하면 도움이 될 것입니다. – dove

+0

일부 변경 사항 – lesyk

관련 문제