我们正在使用AngularJS尝试将用户输入的内容显示为HTML。大多数情况下,用户输入我们使用ng-bind-html正确显示的有效/安全数据。有时他们会输入无效的HTML,我仍然希望将其显示为原始文本。
如果我使用ng-bind-html尝试显示无效的HTML,我会收到此错误:
[$sanitize:badparse] The sanitizer was unable to parse the following block of html:
我不想使用trustAsHtml,因为我不相信我们的清洁剂,并希望确保我们不在页面上显示不安全的html。
答案 0 :(得分: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
答案 1 :(得分:0)