Impossibile creare un'istanza del modulo [$ injector: unpr] Provider sconosciuto: $ routeProvider


Risposte:


404

Il modulo ngRoute non fa più parte del angular.jsfile core . Se stai continuando a usare $ routeProvider, ora dovrai includere angular-route.jsnel tuo HTML:

<script src="angular.js">
<script src="angular-route.js">

Riferimento API

Devi anche aggiungere ngRoutecome dipendenza per la tua applicazione:

var app = angular.module('MyApp', ['ngRoute', ...]);

Se invece stai pianificando di utilizzare angular-ui-routero simili, rimuovi semplicemente la $routeProvider dipendenza dal tuo modulo .config()e sostituiscila con il relativo fornitore di scelta (ad es $stateProvider.). Dovresti quindi utilizzare la ui.routerdipendenza:

var app = angular.module('MyApp', ['ui.router', ...]);

2
Sembra che il ui-routerprogetto possa essere un'alternativa più flessibile, se stai iniziando da zero ( github.com/angular-ui/ui-router )
gatoatigrado

2
@gatoatigrado - Ho appena capito quanti anni aveva la ui.statesintassi quando ho aggiornato la mia app da angular-ui-router v0.0.1 a v0.2.0 , il che significa che ora usa il ui.routernome. Mi scuso per qualsiasi confusione causata.
Scotty.NET,

3
Dov'è l'indirizzo CDN angular-route.js?
Sahar Sany,

@SaharSany: la documentazione perangular-route fornisce l'indirizzo CDN e altre opzioni. Per quanto riguarda ui-routerattualmente non esiste un CDN che io conosca.
Scotty.NET,

3
ui-routernon sembra essere sulla propria CDN, anche se è su cdnjs: cdnjs.com/libraries/angular-ui-router
Nick McCurdy

41

aggiungendo alla risposta di scotty:

Opzione 1: includi questo nel tuo file JS:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>

Opzione 2: oppure usa semplicemente l'URL per scaricare " angular-route.min.js " sul tuo locale.

e quindi (qualunque opzione scegliate) aggiungete questo 'ngRoute' come dipendenza.

ha spiegato: var app = angular.module('myapp', ['ngRoute']);

Saluti!!!


5
Scusa ma devo ammettere che questo sembra molto simile alla risposta già fornita ??
Scotty.NET,

2
... in altri posti ho scoperto che le persone non sono in grado di trovare il link / URL per scaricare o fare riferimento a "angular-route.min.js". Questo è ciò che ho dato in Risposta e Sì, accetto la dipendenza 'ngRoute' di cui hai parlato, quindi l'ho aggiunto anche nella mia risposta.
mayankcpdixit,

Sono più che stanco dell'inferno della js library. Sicuramente ci deve essere un modo migliore che capire il modulo stack corretto per modulo.

Ecco come si fa @SamanthaAtkins, se si conosce la necessità, si inietta la dipendenza e si include il file JS se non si dispone di codice per tale dipendenza. Anche se apprezzerei un modo migliore se qualcuno lo suggerisce.
mayankcpdixit,

3

Nel mio caso è stato perché il file è stato minimizzato con ambito errato. Usa array!

app.controller('StoreController', ['$http', function($http) {
    ...
}]);

Sintassi del caffè:

app.controller 'StoreController', Array '$http', ($http) ->
  ...
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.