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.