javascript - Lodash _.template 渲染转义字符

标签 javascript lodash underscore.js-templating html-escape-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: "&lt;em&gt;Test&lt;/em&gt;" }));

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

(htmlDecode函数来自这个问题:Unescape HTML entities in Javascript?)

关于javascript - Lodash _.template 渲染转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44830623/

相关文章:

javascript - 从页面/注册表中删除 polymer 元素的推荐方法是什么?

javascript - ngDialog - 弹出窗口不更新范围变量

javascript - 为不同类中的方法提供 'this' 上下文的最佳实践

Javascript 插入数组 - 性能

javascript - Underscore.js 模板内未定义函数

javascript - 下划线用换行符替换新行字符

javascript - undefined 不是函数 """

javascript - 为什么这个 lodash 模板会抛出语法错误?对我来说看起来不错

javascript - 如何通过不同数组中的值来命名数组中的值?

javascript - 未捕获的语法错误 : Unexpected token ')' in underscore when looping throught template