如何找到丢失的$ injector错误?

时间:2014-07-01 01:48:49

标签: angularjs code-injection

我正在将一些核心角色内容移植到一个新项目中。现在我得到了喷油器错误,但堆栈跟踪/角度错误页面没有显示有问题的喷油错误的类名。我得到的只是

Error: $injector:modulerr
Module Error

通常在某处有一个类名。现在我必须经历每一个班级(几十个和几十个)并手动检查导入。有没有更好的方法?我只是在添加课程时看到了这种情况。有时它会显示缺失注射的名称,有时它只会显示为空白,否则堆栈跟踪会正确识别缺失/不良注射。

我可以获得一些额外的调试模式吗?

完整(无用)堆栈跟踪:

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

如果您想尝试重现此操作,请提交更改。在这里和那里删除几个文件。运行你的角度应用程序如果你删除的很多,你很快就会得到空白的喷油器错误。

1 个答案:

答案 0 :(得分:2)

一些提示和技巧:

此处适用similar injector error answer:在角度错误代码上设置断点并查看调用堆栈。

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

另外,如果您还没有移动到带注释的代码(这可以更容易发现注射器错误)在1.3和更高的角度,您可以使用指令' ng = strict-di'在任何具有ng-app指令的元素上,这将导致应用程序在任何未注释的模块上抛出错误 - 它将包括函数以及参数('函数($ scope,service, ()#);)希望它足够独特,可以快速找到。