javascript templates mustache handlebars.js

javascript - Cómo decodificar una entidad HTML con manillares



templates mustache (2)

Estoy usando el motor de plantillas Handlebars en la aplicación que estoy creando para procesar los datos que recibo del servidor.

Sé que escapa de los valores HTML por defecto y que tiene que usar los corchetes {{{text}}} para que el text: <p>Example</p> se represente como un elemento HTML.

El problema es, ¿qué hago si los datos que recibo, incluidas las etiquetas HTML, ya se han escapado?

Entonces, si recibo datos como:

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

¿Cómo fuerzo los manillares para traducirlo y procesarlo como HTML normal?


Handlebars proporciona ayudantes y escribe un ayudante personalizado como sigue en Hanlebars_helpers.js

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

y use este asistente en sus archivos .hbs o .hbs siguiente manera

{{encodeMyString myHTMLData}}

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


Primero hay que decodificarlo y luego pasarlo a los manillares con paréntesis 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>