Domanda

Sto usando il manubrio Templating Engine sull'app che sto costruendo per rendere i dati che ottengo dal server.

So che sfugge ai valori HTML per impostazione predefinita e che devi utilizzare le staffe triple {{{text}}} in ordine per il rendering text: <p>Example</p> come elemento HTML.

Il problema è che cosa faccio se i dati che ricevo, inclusi i tag HTML, è già scappato?

Allora, se ricevo dati come:

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

Come costringere i manubri a tradurlo e renderlo come normale html?

È stato utile?

Soluzione

Devi decodificarlo prima, quindi passarlo al manubrio con parentesi triple.Conosco un piccolo suggerimento per decodificare entità 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>
.

Altri suggerimenti

Manubri fornisce aiuto e scrivi un aiutante personalizzato come segue sotto manubrio_helpers.js

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

E utilizzare questo aiutante nei file .handlebar o nei file .hbs come segue

{{encodeMyString myHTMLData}}
.

senza aiuto di jQuery puoi usarlo qualsiasi dove all'interno del manubrio. Anche puoi usare l'aiutante per passare i dati da soli e che restituiranno i dati con tag predisero e aggiunti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top