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-eval
    no-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>
    
    尝试一下