如何让AngularJS输出转义HTML

How to have AngularJS output escaped HTML

本文关键字:转义 HTML 输出 AngularJS      更新时间:2024-04-08

我正在从服务器获取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。也许我错过了什么?

在引入$sce服务(angular 1.2)的同时,放弃了对ng-bind-html-unsafe指令的支持。新指令是ng-bind-html。如果你使用这个,代码应该像文档一样工作:

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

使用此指令:

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

别忘了在你的应用程序模块上使用角消毒液。

请在此处查看:http://docs.angularjs.org/api/ngSanitize