2012-07-12 4 views
40

html 태그 (<br />, <strong>, <p>, <span> 및 이와 유사한 내용)를 포함하는 ember 속성이 있습니다.html 태그를 포함하는 속성 표시

어떻게하면이 텍스트를 이스케이프하지 않도록 말할 수 있습니까? Ember에서 기본 Handlebars 도우미가 있습니까? 아니면 직접 작성해야합니까? http://handlebarsjs.com/에서

답변

79

핸들 바 {{expression}}에 의해 반환 된 값을 HTML은 - 이스케이프합니다.
핸들 바가 값을 이스케이프하지 않게하려면 "3 중 숨김"을 사용하십시오. 당신이 String 프로토 타입에 추가됩니다 htmlSafe 방법을 통해이 작업을 수행 할 수 있습니다 Ember.js

{{{expression}}}

+2

== 표현식 – dhilipsiva

+0

morhook에서 언급했듯이 [Ember.String.htmlSafe()] (http://emberjs.com/api/classes/Ember.String) 값을 래핑 할 수도 있습니다. .html # method_html 안전). 이 값은 여러분이 완전히 제어 할 수없는 addon/구성 요소에 값을 전달할 때 유용합니다. – kjb

16

, http://jsfiddle.net/pangratz666/jNAQ6/ 참조 :

핸들 바 :

<script type="text/x-handlebars" > 
    {{App.html}} - {{App.unescaped}} 
</script>​ 

자바 스크립트 :

App = Ember.Application.create({ 
    html: '<b>bold text</b>', 
    unescaped: function(){ 
     return this.get('html').htmlSafe(); 
    }.property('html') 
});​ 
+0

이것은 작동하지 않습니다. {{App.html}}은 html 요소도 제거합니다. – TMQuinn

+0

'.htmlSafe()'는 내가 필요로하는 메소드입니다. – kevnk

+2

최신 Ember (2.6.1)는 [Ember.String.htmlSafe() method] (http://emberjs.com/api/classes/Ember.String.html#method_html 안전) – morhook

3

엠버 2.x에서, 당신은 htmlSafe 도우미를 사용할 수 있습니다 엠버 템플릿을 사용하여 이스케이프 출력 문자열을하려면 자바 스크립트

를 사용하여.

Ember.String.htmlSafe('<div>someString</div>') 

반환 된 문자열은 Handlebars 템플릿 엔진에 의해 HTML로 이스케이프되지 않습니다.

http://emberjs.com/api/classes/Ember.String.html#method_htmlSafe

를 사용하여 핸들 바 또는 만

, 당신은 핸들 바 템플릿 원시 HTML을 통과 트리플 괄호

에게

내부 핸들 바 템플릿

를 사용하여 원시 HTML 출력을 얻을 수 있습니다
<div>{{{raw_html_content}}}</div> 
관련 문제