Angularjs 由数组外函数定义的指令引起的角度itkn错误

Angularjs 由数组外函数定义的指令引起的角度itkn错误,angularjs,angular-bootstrap,Angularjs,Angular Bootstrap,我正在使用Angular 1.3.15,也尝试了1.2.28,以及Angular引导。昨晚,在将Chrome更新到v42.0.2311.90之后,我突然发现大量的角度错误: Error: [$injector:itkn] Incorrect injection token! Expected service name as string, got function () http://errors.angularjs.org/1.3.15/$injector/itkn?p0=function%2

我正在使用Angular 1.3.15,也尝试了1.2.28,以及Angular引导。昨晚,在将Chrome更新到v42.0.2311.90之后,我突然发现大量的角度错误:

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)
将导致此
itkn
错误。I console.log将
记录在
$inject
迭代器的angular中,它将返回指令本身的函数,而不仅仅是明确指定的字符串

我发现,将函数包装在数组中,即使没有任何字符串定义注入,也可以解决问题:

  .directive('modalTransclude', [function () {
    return {
      // directive code
    };
  }])
然而,这个错误并没有发生在angular bootstrap站点上,我在angular 1.3和1.2版本上都尝试过


我会继续寻找我的应用程序特有的原因,但有人知道是什么原因导致了这种情况吗?

应该可以,不需要定义方括号。方括号的唯一原因是为了缩小js


如果您在chrome中安装了ng-inspector.org扩展,这可能是一个原因。只需关闭ng inspector浏览器扩展


我不知道为什么目前不与ng检查员合作的确切原因。如果有人有时间研究这个问题,最好向相关项目提交bug(我怀疑是ng inspector本身)。

这确实是昨天发布的ng inspector 0.5.9版(我是其维护者)出现的问题。我已经在为此制定解决方案,并将很快发布

非常抱歉给您带来不便=(


编辑:刚刚发布的v0.5.10应该可以修复此问题。如果您遇到进一步的困难,请随时在上打开一个问题。我昨天在ng inspector github回购上报告了同一个问题,并且已经有人试图修复它(仍然没有检查它是否工作)

同样的事情也发生在我的Chrome上,虽然只是针对我的引导模式。刚刚在Firefox上测试过,它们似乎在那里工作。我可以确认,这个指令问题只影响我的角度引导功能。我自己的工作中有任何自定义指令都很好,无论有没有括号。你的Chrome中安装了吗?F或者我,如果我关闭ng inspector,一切都会回到正常模式。不确定确切原因是什么,没有时间深入研究。这种行为最近也出现在我身上。我知道!我不知道为什么我没有想到这一点。这解决了问题!如果你想将此作为答案,我会接受。完成。我会很高兴的f有人可以调查原因。我知道。但是使用括号解决了这个问题。这只是最新Chrome中的一个问题。Firefox/Safari似乎没有受到影响。感谢您确认修复!我为所有人感到难过,他们一定花了很多时间试图调试一个不是他们的错的问题=(这确实是ng inspector版本v0.5.9的问题。更新到v0.5.10(应在重新启动Chrome时自动进行,或者您可以通过访问chrome://extensions/ 并单击“立即更新扩展”)。对于所有受此问题影响的人,我深表歉意。我注意到启用Batarang(0.10.7)时出现了类似问题。$injector未定义。禁用扩展将修复此问题。ng inspector:尝试调用指令时出错:myDirective TypeError:无法读取未定义(…)的属性“invoke”
  .directive('modalTransclude', [function () {
    return {
      // directive code
    };
  }])