2013-05-28 12 views
34

Sto usando Baffi per rendere i modelli.Baffi stringa di modello interno di rendering come HTML

ho questo oggetto JSON:

{ 
    title: "Foo bar", 
    content: "<p> Html here </p>", 
    footer: "footer content here" 
    } 

Ho un modello di baffi come:

<div id="box"> 
    <div id="title"> {{title}} </div> 
    <div id="content"> {{content}} </div> 
    <div id="footer"> {{footer}} </div> 
    </div> 

Il mio problema è che il codice HTML all'interno del contenuto variabile non è sempre resa ma invece è solo ottenere stampato sullo schermo.

Vedo (nella finestra di origine non di visualizzazione): <p> Html here </p>, dove vorrei vedere solo se ho visto il sorgente della pagina.

Come posso risolvere in modo tale che quando passo in una stringa a un modello baffi all'interno viene eseguito il rendering del codice HTML? Sto chiamando mustache.render (templates.all, data); come la mia chiamata ai baffi.

risposta

99

Dal Mustache documentation:

tutte le variabili sono HTML escape per impostazione predefinita. Se si desidera tornare escape HTML, utilizzare i baffi tripla: {{{nome}}}.

Quindi, è sufficiente utilizzare ad es. {{{content}}} nel modello:

<div id="box"> 
    <div id="title"> {{title}} </div> 
    <div id="content"> {{{content}}} </div> 
    <div id="footer"> {{footer}} </div> 
    </div> 
+0

So che questo è un vecchio post, ma ho bisogno di risolvere questo ma con la differenza che voglio assegnare {{{content}}} ad una variabile javascript per poter utilizzare in file javascript oder all'interno del mio sito. – cmarrero01

+0

Se si desidera ottenere il 'content' come una variabile, si farebbe che nel codice che chiama il rendering del modello. Non è possibile estrarre i dati da un modello renderizzato. (Un metodo hack-ish, sarebbe quello di rendere il template, quindi estrarlo dal DOM usando 'documents.querySelector (...). TextContent') – sweetamylase

+0

@ cmarrero01 quindi puoi inserire un {{cnt}} parziale al modello e passare oggetto variabile '{ "cnt": contenuti}' come terzo parametro di 'funzione di render'. Come qui http://jsfiddle.net/EYDfP/169/ –

Problemi correlati