<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script> </head> <body ng-app="" ng-csp> <div> <p>我的第一個(gè)表達(dá)式: {{ 5 + 5 }}</p> </div> <p>使用 ng-csp 指令, 你可以修改 AngularJS 執(zhí)行代碼的方式。</p> <p>AngularJS 的執(zhí)行方式提高了 30% 的性能</p> </body> </html>測(cè)試看看 ?/?
ng-csp 指令用于修改 AngularJS 的安全策略。
如果使用了 ng-csp 指令, AngularJS 將不會(huì)執(zhí)行eval 函數(shù),這樣就無法注入內(nèi)聯(lián)樣式。
設(shè)置 ng-csp 指令為 no-unsafe-eval, 將阻止 AngularJS 執(zhí)行 eval 函數(shù),但允許注入內(nèi)聯(lián)樣式。
設(shè)置 ng-csp 指令為 no-inline-style, 將阻止 AngularJS 注入內(nèi)聯(lián)樣式,但允許 執(zhí)行 eval 函數(shù)。
如果開發(fā) Google Chrome 擴(kuò)展或 Windows 應(yīng)用 ng-csp 指令是必須的。
注意:ng-csp 指令不會(huì)影響 JavaScript,但會(huì)修改 AngularJS 的工作方式,這就意味著: 你仍然可以編寫 eval 函數(shù), 且也可以正常執(zhí)行, 但是 AngularJS 不能執(zhí)行它自己的 eval 函數(shù)。如果采用兼容模式,會(huì)降低 30% 的性能。
<element ng-csp="no-unsafe-eval | no-inline-style"></element>
值 | 描述 |
---|---|
no-unsafe-eval no-inline-style | 值可設(shè)置為空,意味著 eval 和 內(nèi)聯(lián)樣式都不被允許。 可以設(shè)置其中一個(gè)值。 你也可以同時(shí)設(shè)置兩個(gè)值使用分號(hào)隔開,但這與留空的效果是一樣的。 |