node.js和Handlebars:编译的HTML被转义

我在节点应用程序中使用把手,我有麻烦。

这是模板index.html

 {{CONTENT}} 

这是代码

 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); 

问题是标签<B>被转移到&lt;B&gt;

我怎样才能避免这一点?

从handlebarsjs.com :

把手HTML转义由{{expression式}}返回的值。 如果你不想要把手逃离一个值,使用“三重藏匿”。

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

在此背景下:

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

结果是:

 <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> 

但是从我的angular度来看,它可能会打败一个模板分离的目的,而不是你的js文件。

如果使用预编译,则使用no​​Escape选项:

 handlebars.precompile(content, {noEscape: true}) 

你想在你的模板中使用“三重藏匿”:

 {{{CONTENT}}}