hel*_*on3 7 angularjs angular-bootstrap
我正在使用Angular 1.3.15,也尝试过1.2.28,以及角度引导程序.昨晚,在将Chrome更新为v42.0.2311.90之后,我突然开始看到大量的角度itkn错误:
Error: [$injector:itkn] Incorrect injection token! Expected service name as string, got function ()
http://errors.angularjs.org/1.3.15/$injector/itkn?p0=function%20()
at REGEX_STRING_REGEXP (angular.min.js?bust=undefined:63)
at Object.invoke (angular.min.js?bust=undefined:4189)
at angular.min.js?bust=undefined:6525
at forEach (angular.min.js?bust=undefined:323)
at Object.<anonymous> (angular.min.js?bust=undefined:6523)
at Object.invoke (angular.min.js?bust=undefined:4204)
at Object.enforcedReturnValue [as $get] (angular.min.js?bust=undefined:4056)
at Object.invoke (angular.min.js?bust=undefined:4204)
at angular.min.js?bust=undefined:4021
at Object.getService [as get] (angular.min.js?bust=undefined:4162)
Run Code Online (Sandbox Code Playgroud)
这在更新Chrome之前没有发生,但我想我不能说这肯定是相关的.
经过深思熟虑后,我发现任何定义的指令都是这样的:
.directive('modalTransclude', function () {
return {
// directive code
};
})
Run Code Online (Sandbox Code Playgroud)
会导致此itkn错误.我在控制台key中记录了$inject迭代器中的角度,它返回了指令本身的功能,而不仅仅是明确意图的字符串.
我发现将函数包装在一个数组中,即使没有定义注入的任何字符串,它也解决了这个问题:
.directive('modalTransclude', [function () {
return {
// directive code
};
}])
Run Code Online (Sandbox Code Playgroud)
但是,角度引导程序站点上没有发生此错误,我在角度1.3和1.2版本上都尝试过这种错误.
我将继续寻找我的应用程序独有的任何原因,但有没有人知道是什么导致了这个?
如果您在chrome中安装了ng-inspector.org扩展,则可能是一个原因.只需关闭ng-inspector浏览器扩展即可.
我不知道为什么它目前不与ng-inspector合作的确切原因.如果有人有时间研究这个问题,那么将bug提交给涉及的项目会很好(我怀疑它是ng-inspector本身).