javascript之如何在 lodash.template() 中取消转义 html 标签

无情 阅读:45 2024-09-07 23:24:14 评论:0

我想使用 lodash.template() 创建一个 html 代码,但结果出乎我的意料。

var a = '<td>a</td>'; 
var expected = '<tr><td>a</td></tr>'; 
var actual = _.template('<tr><%- a %></tr>', {a: a}); 
 
console.log(actual); 
"<tr>&lt;td&gt;a&lt;/td&gt;</tr>" 

填充文本 a结果被逃脱了。

我怎样才能得到 expected 的结果?

我可以设置 options.escape ,但不知道如何使用此选项。

谢谢!

请您参考如下方法:

您可以使用<%= a %>print在评估上下文中,尽管出于安全考虑,不建议以这种方式生成 HTML。

var actual = _.template('<tr><% print(a) %></tr>', {a: a}); 
// or 
var actual = _.template('<tr><%= a %></tr>', {a: a}); 


标签:JavaScript
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号