【发布时间】:2013-12-24 13:16:01
【问题描述】:
我正在从服务器获取 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。也许我错过了什么?
【问题讨论】:
-
为什么不从服务器发送正确的 html?
-
这是我下定决心要做的事情。但我认为传输 html 转义更安全。
-
不明白为什么它会更安全,或者它会有什么不同
-
您使用的是什么版本的 Angular? ng-bind-html-unsafe 在 1.2+ 版本中被移除,支持 ng-bind-html 和 $sce 服务
-
@max Favilli - 你能解决这个问题吗?解决办法是什么?
标签: javascript json angularjs html-escape-characters