Angularjs 如何定位丢失的$injector错误?

Angularjs 如何定位丢失的$injector错误?,angularjs,code-injection,Angularjs,Code Injection,我正在把一些核心的东西移植到一个新项目中。现在我得到了注入器错误,但是stacktrace/angular error页面没有显示有问题的注入器错误的类名。我得到的只是 Error: $injector:modulerr Module Error 通常在那里的某个地方有一个类名。现在我必须检查每一个类(几十个)并手动检查导入。难道没有更好的办法吗?我在添加类时看到过这种情况。有时它会显示缺失注入的名称,有时它只是显示为空,否则stacktrace会正确识别缺失/错误注入 是否有一些额外的调试模

我正在把一些核心的东西移植到一个新项目中。现在我得到了注入器错误,但是stacktrace/angular error页面没有显示有问题的注入器错误的类名。我得到的只是

Error: $injector:modulerr
Module Error
通常在那里的某个地方有一个类名。现在我必须检查每一个类(几十个)并手动检查导入。难道没有更好的办法吗?我在添加类时看到过这种情况。有时它会显示缺失注入的名称,有时它只是显示为空,否则stacktrace会正确识别缺失/错误注入

是否有一些额外的调试模式,我可以得到这个信息

完整(无用)堆栈跟踪:

Failed to instantiate module FSApp due to:
Error: [$injector:modulerr] http://errors.angularjs.org/1.2.16/$injector/modulerr?p0=FSApp&p1=Error…cape%2Fmain%2Fresources%2Flib%2Fangular-1.2.16%2Fangular.min.js%3A32%3A445)
    at Error (native)
    at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:6:450
    at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:33:332
    at Array.forEach (native)
    at q (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:7:280)
    at e (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:32:445)
    at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:33:18
    at Array.forEach (native)
    at q (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:7:280)
    at e (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:32:445
如果要尝试复制此内容,请提交更改。在这里和那里删除几个文件。运行你的angular应用程序。如果删除的内容足够多,很快就会出现空白喷油器错误。

一些提示和技巧:

A在这里适用:在角度错误代码上设置一个断点,并查看调用堆栈

另外,偶尔单击堆栈顶部的链接,跟踪到一个页面(没有类名),但是页面的错误有另一个堆栈跟踪链接。单击该链接,第二页可能会显示缺失对象的名称


此外,如果您还没有在angular 1.3及更高版本中使用带注释的代码(这可以更容易地发现喷油器错误),那么您可以在具有ng app指令的任何元素上使用指令“ng=strict di”,这将导致应用程序在任何未带注释的模块上抛出错误,并且它将包括函数和参数(‘功能($scope,service,something)’)希望它足够独特,可以很快找到。

你最近有没有从Angular pre-1.2升级到1.2.x?没有。原来的应用程序可以100%工作。我只是将一个项目复制到一个新文件夹,并开始删除与新项目不相关的文件。这让我在重构代码等其他情况下感到沮丧。考虑到这一点依赖性错误是开发人员面临的最常见的编译器错误,令人遗憾的是Angular在提供信息方面表现得如此糟糕。有时,您可以通过使用未统一的Angular.js获得更清晰的错误消息,尽管我不确定这是否会有所帮助。此外,我在第一条评论中提到的是1.2+移动了
ngRoute
到一个单独的文件,我看到了很多错误,因为忘记包含它。这是您删除的文件之一吗?不,只是删除了与此项目不相关的视图/部分。是的,切换了!