节点5.6.0,Express 4.13.4,Jade 1.11.0 - 如何在模板中将转义字符串呈现为HTML

时间:2016-03-08 13:02:45

标签: node.js pug

一个看似简单的问题我似乎无法破解。我正在检索逃脱的&从数据库中清理了html,我希望将其转换为jade中的html并将其渲染为html。我已经看到了jade html escaped string这个问题,但答案并不是我想要的。在这个问题的答案中,标记呈现为字符串,而不是标记。我特别希望将转义字符串呈现为标记。我已经尝试了以下结果。

var escapedstring = '<p>Some Textlt;/p>';

在玉...

1. div=escapedstring renders <div>&amp;lt;p&amp;gt;Some Text&amp;lt;/p&amp;gt;</div>
2. div!=escapedstring renders <div>&lt;p&gt;Some Text&lt;/p&gt;</div>

3.div
    !{escapedstring} renders <div>&lt;p&gt;Some Text&lt;/p&gt;</div>

4.div
    #{escapedstring} renders <div>&lt;&lt;p&gt;Some Text&lt;/p&gt;&gt;<!--&lt;p&gt;Head Lease&lt;/p&gt;--></div>

使用unescape(escapedstring)会产生相同的结果。有人能告诉我我做错了吗?

TIA

1 个答案:

答案 0 :(得分:0)

对于任何来到这里的人来说,这就是我所做的。非常感谢评论的stdob。我有一个名为viewhelpers的模块,我将其作为一个名为vh的属性全局添加到locals对象中,以便它可用于jade视图。然后我在npm安装一个名为html-entities(https://www.npmjs.com/package/html-entities)的模块。然后在我的浏览器中,我添加了这两行......

var ent = require('html-entities').XmlEntities;

module.exports.decode = ent.decode;

然后在我看来,我可以简单地使用

div!= vh.decode(tenancynote.note)

希望这有助于某人。