2012-07-12 3 views
40

Posiadam właściwość ember, która zawiera znaczniki html (<br />, <strong>, <p>, <span> i podobne rzeczy).Pokaż właściwość zawierającą znaczniki html

Jak mogę powiedzieć, że Ember nie może uciec przed tym tekstem? Czy jest jakiś domyślny pomocnik Handlebars od embera, czy muszę napisać własną?

Odpowiedz

79

Od http://handlebarsjs.com/

Kierownice HTML ucieka wartości zwracanych przez {{expression}}.
Jeśli nie chcesz, aby kierownica wymykała się wartości, użyj "potrójnego skrytka".

{{{expression}}}

+2

Na wszelki wypadek, jeśli ktoś szuka odpowiednika Emblem, jego '== expression' – dhilipsiva

+0

Jak wspomniano przez morhook, możesz również zawinąć wartość w [Ember.String.htmlSafe()] (http://emberjs.com/api/classes/Ember.String .html # method_htmlSafe). Jest to przydatne, jeśli wartość jest przekazywana do dodatku/komponentu, który nie ma pełnej kontroli. – kjb

16

ciągu Ember.js można to zrobić metodą htmlSafe, która jest dodawana do prototypu String patrz http://jsfiddle.net/pangratz666/jNAQ6/:

Kierownice:

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

JavaScript:

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

To nie działa. {{App.html}} usunie również elementy html – TMQuinn

+0

'.htmlSafe()' jest potrzebną metodą – kevnk

+2

Do najnowszej wersji Ember (2.6.1) użyłem metody [Ember.String.htmlSafe()] (http://emberjs.com/api/classes/Ember.String.html#method_htmlSafe) – morhook

3

Ember 2.x, używając JavaScript

Aby ciąg Niecytowany i wyjście za pomocą szablonów Ember można użyć htmlSafe pomocnika.

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

Zwrócony łańcuch nie będzie przechodził w HTML przez silnik szablonu Handlebars.

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

Zastosowanie Kierownice Tylko

Alternatywnie, można przekazać surowego HTML do kierownicy szablonu i dostać surową wyjście HTML za pomocą protokołu Triple wsporniki

wewnątrz kierownicy szablon

<div>{{{raw_html_content}}}</div>