node.js e Manubri: HTML compilato è sfuggito

Im utilizzando manubri in un nodo di applicazione, e non ho problemi.

Questo è il modello index.html

{{CONTENT}}

Questo è il codice

var fs = require("fs");
var handlebars = require("handlebars");

var data = {
    CONTENT: "<b>Hello world!</b>"
};

var templateFile = fs.readFileSync('./index.html', 'utf8');
var template = handlebars.compile( templateFile );
var html = template(data);

Il problema è che il tag <B> sono fuggiti a &lt;B&gt;

Come posso evitare questo?

 

2 Replies
  1. 37

    Da handlebarsjs.com :

    Manubrio HTML sfugge valori restituiti da una {{espressione}}. Se si
    non voglio Manubrio per sfuggire a un valore, utilizzare il “triple-stash”.

    <div class="entry">
      <h1>{{title}}</h1>
      <div class="body">
        {{{body}}}
      </div>
    </div>

    con questo contesto:

    {
      title: "All about <p> Tags",
      body: "<p>This is a post about &lt;p&gt; tags</p>"
    }

    risultati:

    <div class="entry">
      <h1>All About &lt;p&gt; Tags</h1>
      <div class="body">
        <p>This is a post about &lt;p&gt; tags</p>
      </div>
    </div>

    Tuttavia, dal mio punto di vista si può sconfiggere lo scopo di avere un modello separato rispetto a sei file js.

    Se si utilizza precompilare quindi utilizzare noEscape opzione:

    handlebars.precompile(content, {noEscape: true})
    • Grazie. Funziona alla grande. Questo è stato solo un caso di test. La sua non è non è lo scopo di quello che sto cercando di fare 😉
    • Solo dicendo may perché a volte non sono un’opzione, ma quando lo si fa …
    • Im solo il caricamento di un modello all’interno di un altro modello. Im utilizzando 2 file HTML.
  2. 24

    Si desidera utilizzare la ‘tripla stash’ nel modello:

    {{{CONTENT}}}
    • Grazie per la “risposta” 🙂

Lascia un commento