AngularJS ng-csp Directive


Change the way AngularJS behaves regarding "eval" and inline styles:

<body ng-app="" ng-csp>
Try it Yourself »

Definition and Usage

The ng-csp directive is used to change the security policy of AngularJS.

With the ng-csp directive set, AngularJS will not run any eval functions, and it will not inject any inline styles.

Setting the value of the ng-csp directive to no-unsafe-eval, will stop AngularJS from running any eval functions, but allow injecting inline styles.

Setting the value of the ng-csp directive to no-inline-style, will stop AngularJS from injecting any inline styles, but allow eval functions.

Using the ng-csp directive is necessary when developing apps for Google Chrome Extensions or Windows Apps.

Note: The ng-csp directive does not affect JavaScript, but it changes the way AngularJS works, meaning: you can still write eval functions, and they will be executed as you expect, but AngularJS will not run its own eval functions. It uses a compatibility mode which can slow down the evaluation time up to 30%.


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

Parameter Values

Value Description
The value can be empty, meaning neither eval or inline styles are allowed.
The value can be one of the two values described.
The value can be both values, separated by a semicolon, but that will have the same meaning as an empty value.