Lodash _.template 渲染转义字符
Lodash _.template rendering escaped characters
我有一些数据已经从 "controller":
中转义了
<b>
我使用的是 lodash 模板 (_.template),渲染时它仍然是纯文本:
<b>
预计:
<b>
如何在浏览器不认为它像纯文本而不是元素的情况下呈现这种 html 部分?
调用一个函数来取消转义您的转义 HTML。根据您的情况,您可以选择对数据进行转义并将结果传递给模板,或者如本代码段所示,在模板中编写函数调用:
var temp = _.template("<%= htmlDecode(name) %>");
function htmlDecode(input) {
var doc = new DOMParser().parseFromString(input, "text/html");
return doc.documentElement.textContent;
}
console.log(temp({ name: "<em>Test</em>" }));
http://jsbin.com/laretumiqa/edit?html,js,console,output
(htmlDecode函数来自这个问题:Unescape HTML entities in Javascript?)
我有一些数据已经从 "controller":
中转义了<b>
我使用的是 lodash 模板 (_.template),渲染时它仍然是纯文本:
<b>
预计:
<b>
如何在浏览器不认为它像纯文本而不是元素的情况下呈现这种 html 部分?
调用一个函数来取消转义您的转义 HTML。根据您的情况,您可以选择对数据进行转义并将结果传递给模板,或者如本代码段所示,在模板中编写函数调用:
var temp = _.template("<%= htmlDecode(name) %>");
function htmlDecode(input) {
var doc = new DOMParser().parseFromString(input, "text/html");
return doc.documentElement.textContent;
}
console.log(temp({ name: "<em>Test</em>" }));
http://jsbin.com/laretumiqa/edit?html,js,console,output
(htmlDecode函数来自这个问题:Unescape HTML entities in Javascript?)