Подтвердить что ты не робот

Как отлаживать ошибки angular [$ injector: modulerr]

У меня растущее приложение angular. Время от времени я испортил вещи и получил ошибку типа:

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

Часто бывает сложно найти ошибку на основе сообщения об ошибке, особенно если есть много файлов с различными контроллерами и т.д.

Есть ли способ отладить эти ошибки в Chrome или Firefox?

4b9b3361

Ответ 2

Просто для иллюстрации.

Это то, что вы получаете при загрузке мини- версии 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

И это то, что вы получаете, когда используете unminified версию (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.

Первая ошибка очень тяжелая для решения. Второй намного проще.

Счастливое кодирование!

Ответ 3

Я нашел, что следующий подход будет несколько полезен. Используйте локальный файл angular.js, чтобы вы могли его изменить:

  • Откройте файл angular.js
  • Перейдите к строкам со следующим кодом:
    message = message + '\nhttp://errors.angularjs.org/1.3.5/' +
      (module ? module + '/' : '') + code;
  • После этих двух строк добавьте:
    console.log(message);
    

Взято отсюда: http://www.chrisgmyr.com/2014/08/debugging-uncaught-error-injectormodulerr-in-angularjs/