如何调试angular [$ injector:modulerr]错误

时间:2014-04-23 14:30:16

标签: angularjs debugging runtime-error

我的角度应用越来越多。我不时搞砸了,并得到了类型错误:

[$injector:modulerr] Failed to instantiate module App due to:

通常很难根据错误消息找到错误,特别是如果有许多文件包含各种控制器等。

有没有办法在Chrome或Firefox中调试这些错误?

3 个答案:

答案 0 :(得分:27)

只是为了说明。

这是您加载Angular(angular.min.js)的缩小版本时获得的内容:

Error: $injector:modulerr
Module Error
Failed to instantiate module eduApp due to:
Error: [$injector:modulerr] http://errors.angularjs.org/1.4.7/$injector/modulerr?p0=e...)
    at Error (native)
    at http://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:6:416
    at http://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:38:184
    at m (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:7:322)
    at h (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:37:275)
    at http://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:37:444
    at m (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:7:322)
    at h (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:37:275)
    at fb (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:41:35)
    at d (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:19:463

这是您使用未明细版本(angular.js)时获得的结果:

Error: $injector:nomod
Module Unavailable
Module 'ui.bootstrap' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

第一个错误很难解决。第二个更容易。

快乐的编码!

答案 1 :(得分:22)

Minified AngularJS gives me unreadable errors

  

...在开发中使用未经过说明的版本,以便于调试。

答案 2 :(得分:12)

我发现以下方法有点帮助。使用本地angular.js文件,以便您可以修改它:

  1. 打开您的angular.js文件
  2. 使用以下代码转到行:
    message = message + '\nhttp://errors.angularjs.org/1.3.5/' +
      (module ? module + '/' : '') + code;
  3. 在这两行之后添加:
    console.log(message);
    
  4. 从这里采取:http://www.chrisgmyr.com/2014/08/debugging-uncaught-error-injectormodulerr-in-angularjs/