哪个表达式不能通过$ sce.trustAsHtml清理?

时间:2015-06-11 08:10:26

标签: angularjs ng-bind-html

假设我有 -

$scope.trustAsHtml = $sce.trustAsHtml; 

<p ng-bind-html="trustAsHtml(expression)"></p>

trustAsHtml可以检查哪些内容expression不会显示为信任HTML?

请给我一些例子。

1 个答案:

答案 0 :(得分:2)

严格上下文转义(SCE)是一种模式,其中AngularJS要求在某些上下文中绑定,以产生一个标记为可安全用于该上下文的值。这种上下文的一个示例是通过ng-bind-html绑定用户控制的任意html。我们将这些上下文称为特权或SCE上下文。

  

注意:如果使用普通的html使用直接绑定在html中使用   NG-绑定-HTML。如果你在html中找到一些特殊字符   意味着我建议使用$ sce.trustAsHtml()并绑定它

例如

应该是:

<div ng-bind-html="trustedHtml"></div>

加上你的控制器:

$scope.html = '<span onmouseover="this.textContent=&quot;Explicitly trusted HTML bypasses sanitization.&quot;">Hover over this text.</span>';
$scope.trustedHtml = $sce.trustAsHtml($scope.html);