Pregunta

Estoy usando el motor de plantillas de manillar en la aplicación que estoy creando para representar los datos que obtengo del servidor.

Sé que escapa de los valores HTML de forma predeterminada y que hay que usar los corchetes triples. {{{text}}} para poder text: <p>Example</p> para ser representado como un elemento HTML.

El problema es, ¿qué hago si los datos que recibo, incluidas las etiquetas HTML, ya están escapados?

Entonces, si recibo datos como:

text: &lt;p&gt;Example&lt;/p&gt;

¿Cómo fuerzo a los manillares a traducirlo y renderizarlo como HTML normal?

¿Fue útil?

Solución

Primero hay que decodificarlo y luego pasarlo al manillar con soportes triples.Conozco un pequeño consejo para decodificar entidades html con jQuery:

// encoded is "&lt;p&gt;Example&lt;/p&gt" in your example
var decoded = $('<textarea />').html(encoded).val();
// decoded should now return <p>Example</p>

Otros consejos

Manubrios proporciona ayudas y escribe un ayudante personalizado como se muestra a continuación Manillar_helpers.js

Handlebars.registerHelper('encodeMyString',function(inputData){
    return new Handlebars.SafeString(inputData);
});

y utiliza este ayudante en tu .handlebar archivos o .hbs archivos de la siguiente manera

{{encodeMyString myHTMLData}}

Sin la ayuda de Jquery puedes usarlo en cualquier lugar dentro del manillar.Incluso puede usar el asistente para pasar los datos solo y devolverá los datos con etiquetas antepuestas y adjuntas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top