9

Web ページに HTML を表示しようとしており、次を使用しています。

        xx {{ pageHtml }} yy 

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

xx と yy の間のデータは生の HTML として表示されますが、私が望むのはそれを生として表示しないことです。2行目のコードを使用しましたが、何も表示されません。

足りないものはありますか?これは以前は機能していたと思っていたので、1.2 で何か変更がありましたか?

更新- 私は HTML を 100% 信頼しており、クリーンアップしたくありません。画面に表示する必要がある HTML 内のコードがあります。

4

2 に答える 2

32

デフォルトでは、innerHTML 化された式の結果は、モジュールの依存関係$sanitizeに含める必要があるサービスを使用してサニタイズされます。ngSanitize

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

$sceただし、HTML が安全であると信頼できる場合は、コントローラーに挿入するサービスを使用してサニタイズをバイパスできます。

$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 に答える