2014-04-23 9 views
30

Ho un'applicazione angolare crescente. Di tanto in tanto, mi complicare le cose e si ottiene un errore del tipo:

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

Spesso è molto difficile da trovare l'errore in base al messaggio di errore, soprattutto se ci sono molti file con i vari controller, ecc

C'è un modo per eseguire il debug di questi errori in Chrome o Firefox?

risposta

12

Ho trovato il seguente approccio un po 'utile. Utilizzare file locale angular.js in modo da poter modificare:

  1. Aprire il file angular.js
  2. Vai a righe con il seguente codice:
     
    message = message + '\nhttp://errors.angularjs.org/1.3.5/' + 
        (module ? module + '/' : '') + code;
  3. Dopo queste due linee aggiungere:
     
    console.log(message); 
    

Tratto da qui: http://www.chrisgmyr.com/2014/08/debugging-uncaught-error-injectormodulerr-in-angularjs/

+1

così semplice ma così efficace. dovrebbero avere un angular.debug.js con questo costruito in ... – epeleg

18

Giusto per illustrare.

Questo è quello che si ottiene quando si carica minified versione angolare (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 

e questo è quello che si ottiene quando si utilizza unminified versione (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. 

Il primo errore è davvero doloroso da risolvere. Il secondo è molto più facile.

Felice codifica!

+0

Come risolvere il primo? Non ricevo alcun errore quando uso la versione non ancora terminata. –

+0

Bene, ho usato per controllare le dipendenze di 'eduApp' uno per uno. E ho usato per cercare nel log git per vedere (per restringere) ciò che potrebbe aver causato il problema. Per me è stato un processo noioso. Tuttavia, il comportamento della tua app potrebbe suggerire che c'è un problema nel minisito stesso: lo controllerei prima. –

Problemi correlati