Enr*_*ent 11 template-engine node.js html-escape-characters handlebars.js
我在节点应用程序中使用把手,我遇到了麻烦.
这是模板 index.html
{{CONTENT}}
Run Code Online (Sandbox Code Playgroud)
这是代码
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);
Run Code Online (Sandbox Code Playgroud)
问题是标签<B>被转义为<B>
我怎么能避免这个?
Poe*_*rin 37
Handlebars HTML-escapes {{expression}}返回的值.如果您不希望Handlebars转义值,请使用"triple-stash".
<div class="entry">
<h1>{{title}}</h1>
<div class="body">
{{{body}}}
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
有了这个背景:
{
title: "All about <p> Tags",
body: "<p>This is a post about <p> tags</p>"
}
Run Code Online (Sandbox Code Playgroud)
结果是:
<div class="entry">
<h1>All About <p> Tags</h1>
<div class="body">
<p>This is a post about <p> tags</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
但是从我的观点来看,它可能会使模板分离的目的与你的js文件相悖.
如果使用预编译,则使用noEscape选项:
handlebars.precompile(content, {noEscape: true})
Run Code Online (Sandbox Code Playgroud)
rob*_*lep 24
你想在模板中使用'triple stash':
{{{CONTENT}}}
Run Code Online (Sandbox Code Playgroud)