Javascript 即使使用了ng csp指令,也会执行eval

Javascript 即使使用了ng csp指令,也会执行eval,javascript,angularjs,content-security-policy,Javascript,Angularjs,Content Security Policy,我已使用ng csp指令启用了ngCsp: <body ng-app="PM" ng-csp ng-cloak> 我不明白ng csp应该做什么吗 AngularJS使用函数(字符串)生成的函数作为速度优化。应用ngCsp指令将导致Angular使用CSP兼容模式。启用此模式时,AngularJS对所有表达式的求值速度将比非CSP模式慢30%,但不会引发安全冲突 这意味着使用ng csp将改变Angular的行为方式,因为它将手动处理事情,而不是采用基于eval的快捷方式。如果您

我已使用ng csp指令启用了ngCsp:

<body ng-app="PM" ng-csp ng-cloak>
我不明白ng csp应该做什么吗

AngularJS使用
函数(字符串)
生成的函数作为速度优化。应用ngCsp指令将导致Angular使用CSP兼容模式。启用此模式时,AngularJS对所有表达式的求值速度将比非CSP模式慢30%,但不会引发安全冲突

这意味着使用
ng csp
将改变Angular的行为方式,因为它将手动处理事情,而不是采用基于
eval
的快捷方式。如果您在文档上使用CSP,这将非常有用


这并不是改变JavaScript工作方式的神奇方法。

谢谢。我想它可能会安慰错误“不要使用eval”或类似的东西
$scope.searchform = {
    searchExpression : "alert('hi')"
}

$scope.handleChange = function () {
    eval($scope.searchform.searchExpression);
}

<input type="text" ng-model="searchform.searchExpression" ng-change="handleChange(searchform.searchExpression)">