9

我正在尝试在我的网页中显示一些 HTML 并使用以下内容:

        xx {{ pageHtml }} yy 

        <div data-ng-bind-html-unsafe="$scope.pageHtml"></div>

xx 和 yy 之间的数据显示为原始 HTML,但我想要的是不将其显示为原始 HTML。我在第二行使用了代码,但没有显示。

有什么我想念的吗?1.2 中是否发生了一些变化,因为我认为这是以前的工作?

更新- 我 100% 信任 HTML,不想清理它。HTML 中会有代码需要在屏幕上显示。

4

2 回答 2

32

默认情况下,innerHTML-ed 表达式结果使用$sanitize需要您包含ngSanitize在模块依赖项中的服务进行清理。

<div data-ng-bind-html="pageHtml"></div>

但是,如果您相信 HTML 是安全的,则可以使用$sce将在控制器中注入的服务绕过清理:

$scope.someSafeContent = $sce.trustAsHtml("<i>Hello</i> <b>World!</b>");

HTML:

<!-- bypasses sanitizaton -->
<div data-ng-bind-html="someSafeContent"></div>
于 2013-09-12T09:42:17.543 回答
1

控制器

myApp.filter('unsafe', function($sce) { return $sce.trustAsHtml; });

在视图中

这将解决您的问题。

于 2015-07-06T04:13:00.787 回答