Error al instanciar el módulo [$ inyector: unpr] Proveedor desconocido: $ routeProvider

Respuestas:

404

El módulo ngRoute ya no forma parte del angular.jsarchivo central . Si continúa utilizando $ routeProvider, ahora deberá incluir angular-route.jsen su HTML:

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

Referencia de API

También debe agregar ngRoutecomo dependencia para su aplicación:

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

Si, en cambio, está planeando usar angular-ui-routero algo similar, simplemente elimine la $routeProvider dependencia de su módulo .config()y sustitúyalo por el proveedor de elección relevante (por ejemplo $stateProvider). Entonces usarías la ui.routerdependencia:

var app = angular.module('MyApp', ['ui.router', ...]);
Scotty.NET
fuente
2
Parece que el ui-routerproyecto puede ser una alternativa más flexible, si está comenzando desde cero ( github.com/angular-ui/ui-router )
gatoatigrado
2
@gatoatigrado: me acabo de dar cuenta de la antigüedad de la ui.statesintaxis cuando actualicé mi aplicación de angular-ui-router v0.0.1 a v0.2.0 , lo que significa que ahora usa el ui.routernombre. Mis disculpas por cualquier confusión causada.
Scotty.NET
3
¿Dónde está la dirección CDN angular-route.js?
Sahar Sany
@SaharSany: la documentaciónangular-route proporciona la dirección CDN y otras opciones. En cuanto a ui-routerque actualmente no hay CDN que yo sepa.
Scotty.NET
3
ui-routerno parece estar en su propia CDN, aunque está en cdnjs: cdnjs.com/libraries/angular-ui-router
Nick McCurdy
41

agregando a la respuesta de scotty:

Opción 1: Incluya esto en su archivo JS:

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

Opción 2: o simplemente use la URL para descargar ' angular-route.min.js ' a su local.

y luego (cualquier opción que elija) agregue este 'ngRoute' como dependencia.

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

¡¡¡Salud!!!

mayankcpdixit
fuente
55
Lo siento, pero tengo que admitir que esto parece muy similar a la respuesta ya proporcionada.
Scotty.NET
2
... en otros lugares descubrí que las personas no pueden encontrar el enlace / URL para descargar o referir 'angular-route.min.js'. Eso es lo que di en Respuesta y Sí, estoy de acuerdo con la dependencia 'ngRoute' de la que habló, así que también agregué eso en Mi respuesta.
mayankcpdixit
Estoy más que un poco cansado del infierno de la biblioteca js. Seguramente tiene que haber una mejor manera que averiguar el módulo de pila adecuado por módulo.
Así es como se hace @SamanthaAtkins, si sabe lo que necesita, inyecte la dependencia e incluya el archivo JS si no tiene código para esa dependencia. Aunque agradecería una mejor manera si alguien sugiere.
mayankcpdixit
3

En mi caso fue porque el archivo se minificó con un alcance incorrecto. Use Array!

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

Sintaxis del café:

app.controller 'StoreController', Array '$http', ($http) ->
  ...
Lucia
fuente