Falha ao instanciar o módulo [$ injector: despr] Provedor desconhecido: $ routeProvider


Respostas:


404

O módulo ngRoute não faz mais parte do angular.jsarquivo principal . Se você continuar usando o $ routeProvider, precisará incluir angular-route.jsno seu HTML:

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

Referência da API

Você também precisa adicionar ngRoutecomo uma dependência ao seu aplicativo:

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

Se, em vez disso, você planeja usar angular-ui-routerou algo parecido, remova a $routeProvider dependência do seu módulo .config()e substitua-a pelo provedor de sua escolha (por exemplo $stateProvider). Você usaria a ui.routerdependência:

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

2
Parece que o ui-routerprojeto pode ser uma alternativa mais flexível, se você está começando do zero ( github.com/angular-ui/ui-router )
— gatoatigrado

2
@gatoatigrado - Acabei de perceber a idade da ui.statesintaxe quando atualizei meu aplicativo da angular-ui-router v0.0.1 para a v0.2.0 , o que significa que agora ele usa o ui.routernome. Peço desculpas por qualquer confusão causada.
— Scotty.NET

3
Onde é o endereço da CDN angular-route.js?
— Sahar Sany

@SaharSany - A documentação paraangular-route fornece o endereço da CDN, além de outras opções. No ui-routermomento, não há CDN que eu conheça.
— Scotty.NET

3
ui-routernão parece estar em sua própria CDN, embora seja em cdnjs: cdnjs.com/libraries/angular-ui-router
— Nick McCurdy

41

adicionando à resposta de scotty:

Opção 1: inclua isso no seu arquivo JS:

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

Opção 2: ou apenas use o URL para baixar ' angular-route.min.js ' para o seu local.

e então (qualquer que seja a opção escolhida), adicione este 'ngRoute' como dependência.

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

Felicidades!!!


5
Desculpe, mas tenho que admitir que isso parece muito semelhante à resposta já fornecida?
— 27713 Scotty.NET

2
... em outros lugares, descobri que as pessoas não conseguem encontrar o link / URL para baixar ou consultar o 'angular-route.min.js'. Foi isso que dei na resposta e, sim, concordo com a dependência 'ngRoute' de que você falou, então acrescentei isso também em minha resposta.
— mayankcpdixit

Estou mais do que um pouco cansado do inferno da biblioteca js. Certamente deve haver uma maneira melhor do que descobrir o módulo de pilha apropriado por módulo.

É assim que é feito @SamanthaAtkins. Se você souber o que é necessário, injete a dependência e inclua o arquivo JS se não tiver código para essa Dependência. Embora eu apreciasse uma maneira melhor se alguém sugerisse.
— mayankcpdixit

3

No meu caso, foi porque o arquivo foi compactado com escopo errado. Use Array!

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

Sintaxe do café:

app.controller 'StoreController', Array '$http', ($http) ->
  ...
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.