web-dev-qa-db-fra.com

Comment déboguer angular [$ injecteur: modulerr] erreurs

J'ai une croissance en croissance angular. De temps en temps, je gâche les choses et obtenez une erreur du type:

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

Il est souvent très difficile de trouver l'erreur en fonction du message d'erreur, surtout s'il existe de nombreux fichiers avec divers contrôleurs, etc.

Existe-t-il un moyen de déboguer ces erreurs dans l'un ou l'autre Chrome ou firefox?

36
avrono

Juste pour illustrer.

C'est ce que vous obtenez lorsque vous chargez Minifiée version de 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

Et c'est ce que vous obtenez lorsque vous utilisez non ciblé version (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.

La première erreur est vraiment douloureuse à résoudre. Le second est beaucoup plus facile.

Joyeux codage!

30
Martin Vseticka

Angularjs minifiée me donne des erreurs illisibles

... Utilisez la version non infilonde dans le développement pour faciliter la déboguer.

22
ferodss

J'ai trouvé l'approche suivante pour être un peu utile. Utilisez local angular.js fichier afin que vous puissiez le modifier:

  1. Ouvrez votre angular.js déposer
  2. Allez aux lignes avec le code suivant:
     Message = message + '\ nhttp: //errors.angularjs.org/1.3.5/' + [.____] (module? Module + '/'/':' ') + code;
  3. Après ces deux lignes, ajoutez:
     console.log (message); 
    

Pris à partir d'ici: http://www.chrisgmyr.com/2014/08/debugging-Error-Injectormodulerr-in-angularjs/

12
krl