AngularJS ng-csp 指令
-
定义和用法
ng-csp
指令用于更改 AngularJS 的安全策略。设置ng-csp
指令后,AngularJS 将不会运行任何eval
函数,也不会注入任何内联样式。将ng-csp
的值设置为 no-unsafe-eval,将阻止 AngularJS 运行任何eval
函数,但允许注入内联样式。将ng-csp
指令的值设置为 no-inline-style 将阻止 AngularJS 注入任何内联样式,但允许使用eval
函数。为 Google Chrome 扩展程序或 Windows Apps 开发应用程序时,必须使用ng-csp
指令。注意:ng-csp 指令不会影响 JavaScript,但会更改 AngularJS 的工作方式,这意味着:您仍然可以编写 eval 函数,并且可以按预期执行它们,但是 AngularJS 不会运行自己的 eval 函数。 它使用兼容模式,可将评估时间减慢最多30%。
-
语法
<element ng-csp="no-unsafe-eval | no-inline-style"></element>
-
参数
参数 必需的 描述 no-unsafe-evalno-inline-style否 该值可以为空,表示不允许使用eval或内联样式。该值可以是所描述的两个值之一。该值可以是两个值,以分号分隔,但与空值具有相同的含义。 -
示例
下例演示了更改AngularJS对“eval”和内联样式的行为方式:
尝试一下<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>欢迎来到蝴蝶教程</title> <script src="//cdn.bootcss.com/angular.js/1.5.8/angular.min.js"></script> </head> <body ng-app="" ng-csp> <div> <p>我的第一个表达式: {{ 5 + 5 }}</p> </div> <p>通过使用ng-app指令,您正在更改AngularJS执行自己的代码的方式。</p> <p>我们无法分辨出差异,但是AngularJS被迫使用另一种评估表达式的方式,这可能会使评估时间增加多达30%。</p> </body> </html>
-