一尘不染

如何使AngularJS输出转义HTML

angularjs

我从服务器获取JSON数据,其中一个字段包含转义的html(实际上是电子邮件正文):

<html>\r\n<head>\r\n<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\r\n</head>\r\n<body dir="auto">\r\n<div>Buonasera, ho verificato i dati sul mio account ed il numero di cell che vi ho fornito</div>\r\n<div><br>\r\n<a (更多…)

我为尝试使用AngularJs渲染而疯狂。

以下内容不起作用:

<div ng-bind-html-unsafe="mail.htmlbody"></div>

我认为这是正常的,因为html实际上已经转义了。我应该先取消转义吗?Angular是否可以通过某些可用服务转义html?

如果我这样使用$ sce:

scope.mail.htmlbody = $sce.trustAsHtml(scope.mail.htmlbody);

显示源html,检查元素可以看到引用的内容。换句话说,在页面中将显示源html,而不是呈现html。也许我缺少什么?


阅读 250

收藏
2020-07-04

共1个答案

一尘不染

同时$sce引入了服务(角度1.2),ng-bind-html-unsafe放弃了对指令的支持。新指令为ng-bind- html。如果使用此代码,则代码应按文档所述工作:

 <div ng-bind-html="mail.htmlbody"></div>
2020-07-04