2012-07-12 12 views
40

Tengo una propiedad de color ámbar que incluye etiquetas html (<br />, <strong>, <p>, <span>, y cosas similares).Mostrar propiedad que incluye etiquetas html

¿Cómo puedo decirle a las brasas que no escapen de este texto? ¿Hay algún ayudante predeterminado de Handlebars de ember, o necesito que escriba el mío?

Respuesta

79

De http://handlebarsjs.com/

Manillar valores devueltos por un {{expression}} HTML escapa.
Si no desea que los manubrios escapen de un valor, utilice el "triple escondite".

{{{expression}}}

+2

Por si acaso alguien está buscando el equivalente de Emblem, es '== expression' – dhilipsiva

+0

Según lo mencionado por morhook, también puede ajustar el valor en [Ember.String.htmlSafe()] (http://emberjs.com/api/classes/Ember.String .html # method_htmlSafe). Esto es útil si el valor se pasa a un complemento/componente del que no tiene control total. – kjb

16

Dentro Ember.js puede hacerlo a través del método htmlSafe, que se añade al prototipo String, ver http://jsfiddle.net/pangratz666/jNAQ6/:

Manillar:

<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

Esto no funciona. {{App.html}} también quitará los elementos html – TMQuinn

+0

'.htmlSafe()' es el método que necesitaba – kevnk

+2

Para la última Ember (2.6.1), he usado [Ember.String.htmlSafe() method] (http://emberjs.com/api/classes/Ember.String.html#method_htmlSafe) – morhook

3

Ember 2.x, usando JavaScript

Para hacer una cadena sin escape y salida utilizando plantillas Ember puede utilizar htmlSafe ayudante.

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

La cadena devuelta no se escape HTML mediante un motor de plantillas manillares.

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

Uso Manillar Sólo

Alternativamente, se puede pasar el código HTML en bruto a la plantilla de Pomos y obtener la salida HTML puro mediante el uso de soportes triples

Dentro de manillares Plantilla

<div>{{{raw_html_content}}}</div> 
Cuestiones relacionadas