1

AngularJS を使用して、ユーザーが入力したコンテンツを HTML として表示しようとしています。ほとんどの場合、ユーザーは有効/安全なデータを入力しますが、これは ng-bind-html を使用して正しく表示されます。時折、無効な HTML を入力することがありますが、それを未加工のテキストとして表示したい場合があります。

ng-bind-html を使用して無効な HTML を表示しようとすると、次のエラーが発生します。

[$sanitize:badparse] The sanitizer was unable to parse the following block of html:

サニタイザーを信頼しておらず、安全でない HTML をページに表示しないようにしたいので、trustAsHtml を使用したくありません。

4

2 に答える 2

1

あなたによると、ngBindHtmlDirective次のようにすることができます:

HTML:

<div ng-if="isSafeHtml()">
  <div ng-bind-html="invalidHtml"></div>
</div>
<div ng-if="!isSafeHtml()">
  {{invalidHtml}}
</div> 

JS:

$scope.isSafeHtml = function() {
   return !!$sce.getTrustedHtml($scope.invalidHtml);
}

変更された plunkr: http://plnkr.co/edit/Besix3PfQ1TjUEEagfca?p=preview

于 2015-06-04T18:02:34.370 に答える