2013-10-05 12 views
65

Sto provando a installare e far funzionare un'app AngularJS 1.2 RC2. Attualmente, ho utilizzato il progetto Angular Seed per provare a far funzionare la mia app. Sfortunatamente, il progetto Angular Seed utilizza v1.0.7. Dal progetto Seed angolare, ho aggiornato le dipendenze per essere il seguente:

$script([ 
    'res/js/angular-1.2.0-rc.2.js', 
    'res/js/angular-route-1.2.0-rc.2.js', 
    'res/js/app.js?v=2', 
], function() { 
    // when all is done, execute bootstrap angular application 
    angular.bootstrap(document, ['myApp']); 
}); 

In app.js, ho il seguente:

'use strict'; 

angular.module('myApp', []). 
    config(['$routeProvider', function($routeProvider) { 
     $routeProvider.otherwise({redirectTo: '/home'}); 
    }]); 

Quando eseguo questo app, ottengo il seguente errore:

Error: [$injector:unpr] Unknown provider: $routeProvider 

ho letto alcune delle altre risposte che dicono cose come 1) Inject 'ngroute' o 2) È necessario definire il controller nel percorso. Il mio problema è che non capisco come iniettare ngroute. Inoltre, ho davvero bisogno di definire il controller nel percorso? Questo approccio non sembra scalabile. La mia app potrebbe avere migliaia di visualizzazioni. A mio parere, sembra proprio che ci debba essere un modo per definire i percorsi senza dover caricare tutti i controller.

+3

Hai provato ad aggiungere ngRoute nella definizione del modulo 'myApp' come questo' angular.module ('myApp', ['ngRoute']). ' – Chandermani

+0

Questa domanda deve essere collegata in video tutorial Angular js in cui tutto funziona perfettamente con la demo per istruttori. – Rohit

risposta

27

In angolare 1.4 +, oltre ad aggiungere la dipendenza

angular.module('myApp', ['ngRoute']) 

, dobbiamo anche riferimento al file angolare route.js separata

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

vedi https://docs.angularjs.org/api/ngRoute

141

Sembra che tu abbia dimenticato di includere il modulo ngRoute nella tua dipendenza per myApp.

In angolare 1.2, hanno fatto ngRoute opzionale (in modo da poter utilizzare provider di percorso di terze parti, ecc) e si deve dipendere in modo esplicito su di essa in moduli, insieme a including the separate file.

'use strict'; 

angular.module('myApp', ['ngRoute']). 
    config(['$routeProvider', function($routeProvider) { 
$routeProvider.otherwise({redirectTo: '/home'}); 
}]); 
+1

Salvato il mio culo. Stavo passando ad Angular 1.2 Grazie –

+1

Questa risposta mi ha salvato la vita quando cercavo di eseguire la versione "dist" dell'app todo da http://yeoman.io/codelab.html - quindi grazie Cuong Vo! – kasperwf

+1

quindi questo significa che quando lo collaudi devi solo fornirlo come parametro per il modulo e non come parametro quando carichi il modulo per il test? – Katana24

Problemi correlati