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

时间:2017-02-02 07:58:01

标签: javascript html angularjs textarea

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

  

[$ sce:unsafe]试图在安全的环境中使用不安全的值。

这是我的 AngularJS 代码:

$scope.fn1 = function(){
//do something A
 var A = 122;
};

$scope.fn2 = function(){
   //do something B
   //I want to get var A here
}

HTML

data.attributes.task_name = $sce.trustAsHtml(data.attributes.task_name);

1 个答案:

答案 0 :(得分:42)

来自Angular documentation

  

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

     

AngularJS的Strict Contextual Escaping (SCE)模式(启用   默认情况下,需要在某些上下文中绑定才能生成值   在这种情况下使用它是安全的。 (例如装载一个   来自URL的AngularJS模板要求URL是考虑的URL   安全加载资源。)

     

这有助于防止XSS和其他安全问题。阅读更多Strict Contextual Escaping (SCE)

     

您可能希望包含ngSanitize模块以使用自动模块   消毒。

您必须包含 ngSanitize

将其加载到 index.html

<script src="lib/angular/angular-sanitize.min.js"></script>

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

angular.module('myApp', ['...', 'ngSanitize']);