如何让AngularJS输出转义HTML
我从服务器获取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
<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实际上逃脱了。 我应该先find它吗? Angular是否能够通过一些可用的服务来避免使用html?
如果我使用这样的$ sce:
scope.mail.htmlbody = $sce.trustAsHtml(scope.mail.htmlbody);
源HTML显示,检查元素,我可以看到内容被引用。 换句话说,在页面中显示源HTML而不是正在呈现的HTML。 也许我错过了什么?
同时引入$sce
服务(angular1.2),支持ng-bind-html-unsafe
指令被删除。 新的指令是ng-bind-html
。 如果你使用这个,代码应该按照logging工作:
<div ng-bind-html="mail.htmlbody"></div>
使用这个指令:
<div ng-bind-html="mail.htmlbody"></div>
不要忘记在您的应用程序模块上使用angular度消毒。
在这里检查: http : //docs.angularjs.org/api/ngSanitize