AngularJS:如何解决"在安全的环境中尝试使用不安全的值"?

STa*_*ers 22 html javascript textarea angularjs

当我尝试将我的数据显示为text-html时,它以HTML格式显示,但是当我刷新页面时,我收到此错误:

[$ sce:unsafe]试图在安全的上下文中使用不安全的值.

这是我的AngularJS代码:

data.attributes.task_name = $sce.trustAsHtml(data.attributes.task_name);
Run Code Online (Sandbox Code Playgroud)

HTML

<span ng-bind-html="taskdata.attributes.task_name" data-html="true" title="{{reminder.attributes.message}}"></span>
Run Code Online (Sandbox Code Playgroud)

Mis*_*lis 47

来自Angular文档:

未发现在特定上下文中使用的值是安全/可信的.

AngularJS的严格上下文转义(SCE)模式(默认情况下启用)要求在某些上下文中绑定,以产生在这种上下文中可以安全使用的值.(例如,从URL加载AngularJS模板要求URL被认为可以安全地加载资源.)

这有助于防止XSS和其他安全问题.阅读更多严格上下文转义(SCE)

您可能希望包含该ngSanitize模块以使用自动清理.


你必须包括ngSanitize:

index.html上加载它:

<script src="lib/angular/angular-sanitize.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

将其作为app.js中的依赖项注入:

angular.module('myApp', ['...', 'ngSanitize']);
Run Code Online (Sandbox Code Playgroud)