Lodash _.template 渲染转义字符



我有一些数据已经从"控制器"中逃逸:

<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: "&lt;em&gt;Test&lt;/em&gt;" }));

http://jsbin.com/laretumiqa/edit?html,js,console,output

(htmlDecode 函数来自这个问题:在 Javascript 中取消转义 HTML 实体?(

最新更新