Handlebars学习(2)- HTML转义
Handlebars中通过{{expression}}返回HTML转义值。如果你不想Handlebars转义(不是解析,三个大括号中的变量依旧会被解释)一个值,可以使用三个大括号:{{{
<div class="entry"> <h1>{{title}}</h1> <div class="body"> {{{body}}} </div> </div>
相应上下文:
{ title: "All about <p> Tags", body: "<p>This is a post about <p> tags</p>"
}
结果输出:
<div class="entry"> <h1>All About <p> Tags</h1>
<div class="body">
<p>This is a post about <p> tags</p>
</div>
</div>
Handlebars不会转义一个Handlebars.SafeString。如果你写了一个产生它自己HTML的helper,通常你想要返回一个new Handlebars.SafeString(result),在这个环境中,你应该手动的转义参数。
Handlebars.registerHelper('link', function(text, url) {
text = Handlebars.Utils.escapeExpression(text);
url = Handlebars.Utils.escapeExpression(url);
var result = '<a href="' + url + '">' + text + '</a>';
return new Handlebars.SafeString(result); });
这将会转义传入的参数,但是安全的标记返回值,所以Handlebars将不会尽力转义它,尽管没有使用{{{的形式。