如何让AngularJS输出转义HTML



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

<html>rn<head>rn<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">rn</head>rn<body dir="auto">rn<div>Buonasera, ho verificato i dati sul mio account ed il numero di cell che vi ho fornito</div>rn<div><br>rn<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

最新更新