Inserte html en una plantilla de manillar sin escapar

143

¿Hay alguna manera de insertar una cadena con etiquetas html en una plantilla de manillar sin que las etiquetas escapen en la cadena saliente?

template.js:

<p>{{content}}</p>

usa la plantilla

HBS.template({content: "<i>test</i> 123"})

resultado real:

<p>&lt;i&gt;test&lt;/i&gt; 123</p>

Resultado Esperado:

<p><i>test</i> 123</p>
Andreas Köberle
fuente
Posible duplicado de la plantilla de representación de la plantilla
MathKimRobin

Respuestas:

350

Intenta como

<p>{{{content}}}</p>

Obtuve la referencia oficial para respaldar mi respuesta:

Manillar Valores de escape HTML devueltos por a {{expression}}. Si no desea que los manillares para escapar de un valor, utilice la "triple escondite", {{{.

Praveen
fuente
27
Por una vez, algo simple .
Madbreaks
77
Honestamente parece lo peor que podrían haber elegido, ya que es difícil de notar. ¿Por qué no simplemente algo simple pero visible como {{ rawHtml expression }}?
danneu
1
De acuerdo con @danneu. Sin magia ni taquigrafía linda, por favor. Explícito es mejor a largo plazo.
Matt
29

En su plantilla debe agregar bigotes triples como este. <p>{{{content}}}</p>

Jernej Novak
fuente
11

De acuerdo con la documentación de Handlebars, http://handlebarsjs.com/expressions.html

Cita de la documentación ,

Si no desea que los manillares escapen de un valor, use el "triple escondite", {{{

Pase el HTML sin formato a la plantilla Handlebars y obtenga el resultado HTML sin formato utilizando corchetes triples.

{{{foo}}}
Lorem Ipsum Dolor
fuente