Lodash _.template渲染转义字符

时间:2017-06-29 16:32:43

标签: javascript lodash underscore.js-templating html-escape-characters

我有一些数据来自“控制器”:

<b>

我正在使用lodash模板(_.template),渲染时仍然是纯文本:

<b>

预期:

<b>

如何在没有浏览器的情况下渲染这种html部分,认为它就像纯文本而不是元素?

1 个答案:

答案 0 :(得分:1)

调用一个函数来浏览转义的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函数来自这个问题:Unescape HTML entities in Javascript?