AngularJS ng-csp 指令

实例

改变 AngularJS 关于 "eval" 和内联样式的行为方式:

  1. <!DOCTYPE html>
  2. <html>
  3. <script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script>
  4. <body ng-app="" ng-csp="">
  5. <div>
  6. <p>我的第一个表达式: {{ 5 + 5 }}</p>
  7. </div>
  8. <p>通过使用 ng-app 指令,可以改变 AngularJS 执行自己代码的方式。</p>
  9. <p>我们无法区分两者之间的区别,但 AngularJS 被迫使用另一种计算表达式的方法,这可以将计算时间增加到 30%</p>
  10. </body>
  11. </html>

定义与用法

ng-csp 指令用于更改 AngularJS 的安全策略。有了 ng-csp 指令集,AngularJS 将不会运行任何 eval 函数,也不会注入任何内联样式。

ng-csp 指令的值设置为 no-unsafe-eval 将阻止 AngularJS 运行任何 eval 函数,但允许注入内联样式。

ng-csp 指令的值设置为 no-inline-style,将阻止AngularJS注入任何内联样式,但允许使用eval函数。

在为 Google Chrome Extensions 或 Windows 应用开发应用程序时,必须使用 ng-csp 指令。

注意:ng-csp 指令不影响 JavaScript,但它改变了 AngularJS 的工作方式,这意味着:您仍然可以编写 eval 函数,它们将按预期执行,但 AngularJS 不会运行自己的eval函数。它使用了一种兼容性模式,可以将评估时间降低 30%。

语法

  1. <element ng-csp="no-unsafe-eval | no-inline-style"></element>

参数值

描述
no-unsafe-eval
no-inline-style
该值可以为空,这意味着不允许使用 eval 或 inline 样式
该值可以是所描述的两个值之一
该值可以是两个值,用分号分隔,但其含义与空值相同

分类导航