小编典典

AngularJS使用$ sce.trustAsHtml和ng-repeat

angularjs

我正在尝试将$ sce.trustAsHtml()与ng-
repeat中的对象属性一起使用。结果是HTML完全空白。不过,使用ngSanitize可以正确输出HTML。

<div ng-repeat="question in questions">
    <p ng-bind-html="$sce.trustAsHtml(question.body)">
    </p>
</div>

顺便说一下,我正在使用AngularJS v1.3.0-beta.3。不知道是否有错误或我做错了什么。


阅读 215

收藏
2020-07-04

共1个答案

小编典典

您不能$sce.trustAsHtml在表达式中使用(除非$sce是的属性$scope),因为表达式是在的上下文中求值的$scope

最干净的方法是使用ngSanitize
第二种最干净的方法是在$sce.trustAsHtml函数中公开$scope

<div ng-repeat="...">
    <p ng-bind-html="trustAsHtml(question.body)"></p>
</div>

$scope.trustAsHtml = $sce.trustAsHtml;
2020-07-04