Fla*_*ape 5 code-injection angularjs
我正在将一些核心的角度内容移植到一个新项目中。现在我收到注入器错误,但堆栈跟踪/角度错误页面不显示有问题的注入错误的类名。我得到的只是
\n\nError: $injector:modulerr\nModule Error\nRun Code Online (Sandbox Code Playgroud)\n\n通常那里有一个类名。现在我必须检查每个类(数十个)并手动检查导入。难道就没有更好的办法吗?我在添加类时就看到了这种情况的发生。有时它会显示丢失的注入的名称,有时它只是显示为空白,否则堆栈跟踪会正确识别丢失/错误的注入。
\n\n是否有一些额外的调试模式可以获取此信息?
\n\n完整的(无用的)堆栈跟踪:
\n\nFailed to instantiate module FSApp due to:\nError: [$injector:modulerr] http://errors.angularjs.org/1.2.16/$injector/modulerr?p0=FSApp&p1=Error\xe2\x80\xa6cape%2Fmain%2Fresources%2Flib%2Fangular-1.2.16%2Fangular.min.js%3A32%3A445)\n at Error (native)\n at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:6:450\n at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:33:332\n at Array.forEach (native)\n at q (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:7:280)\n at e (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:32:445)\n at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:33:18\n at Array.forEach (native)\n at q (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:7:280)\n at e (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:32:445\nRun Code Online (Sandbox Code Playgroud)\n\n如果您想尝试重现此情况,请提交您的更改。到处删除几个文件。运行你的角度应用程序。如果删除得足够多,您很快就会收到空白注射器错误。
\n一些提示和技巧:
类似的注入器错误答案适用于此:在角度错误代码上设置断点并查看调用堆栈。
另外,有时单击堆栈跟踪顶部的链接会转到某个页面(没有类名),但该页面的错误有另一个堆栈跟踪链接。单击该链接,第二页可能会显示丢失对象的名称。
另外,如果您还没有转向带注释的代码(这可以更容易地发现注入器错误),在 Angular 1.3 及更高版本中,您可以在具有 ng-app 指令的任何元素上使用指令“ng=strict-di”,这将导致应用程序在任何未注释的模块上抛出错误 - 并且它将包含该函数以及参数('function($scope, service, Something)'),希望这些参数足够独特以便快速找到。