모듈 [$ injector : unpr]을 인스턴스화하지 못했습니다. 알 수없는 제공자 : $ routeProvider


답변:


404

ngRoute 모듈은 더 이상 코어 angular.js파일의 일부가 아닙니다 . $ routeProvider를 계속 사용하는 경우 이제 angular-route.jsHTML 에 포함해야합니다 .

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

API 참조

또한 ngRoute응용 프로그램에 대한 종속성 으로 추가 해야합니다.

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

대신 등을 사용하려는 경우 모듈 angular-ui-router에서 $routeProvider종속성을 제거하고 .config()선택한 관련 공급자 (예 :)로 대체하십시오 $stateProvider. 그런 다음 ui.router종속성 을 사용합니다 .

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

2
ui-router처음부터 시작하는 경우 프로젝트가 더 유연한 대안 인 것 같습니다 ( github.com/angular-ui/ui-router )
gatoatigrado

2
@gatoatigrado - 난 그냥 얼마나 오래된 실현 ui.state내가에서 내 응용 프로그램을 업그레이드 할 때 구문이 있었다 angular-ui-router v0.0.1v0.2.0 는 이제 사용을 의미하는 ui.router이름입니다. 혼란에 대한 사과드립니다.
Scotty.NET

3
CDN 주소는 어디에 있습니까 angular-route.js?
Sahar Sany

@SaharSany- 설명서angular-route 는 CDN 주소 및 기타 옵션을 제공합니다. 에 관해서는 ui-router내가 알고있는 것을 현재에는 CDN이 없습니다.
Scotty.NET

3
ui-routercdnjs에 있지만 자체 CDN에없는 것 같습니다 : cdnjs.com/libraries/angular-ui-router
Nick McCurdy

41

scotty의 답변에 추가 :

옵션 1 : JS 파일에 이것을 포함 시키십시오 :

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

옵션 2 : 또는 URL을 사용하여 ' angular-route.min.js '를 로컬 에 다운로드 하십시오.

그런 다음 (선택한 옵션)이 'ngRoute'를 종속성으로 추가하십시오.

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

건배!!!


5
죄송하지만 이것이 이미 제공 한 답변과 매우 유사하게 보입니다.
Scotty.NET

2
... 다른 곳에서 사람들이 'angular-route.min.js'를 다운로드하거나 참조 할 링크 / URL을 찾을 수 없다는 것을 알았습니다. 그것이 내가 답변에서했던 것입니다. 그렇습니다. 당신이 이야기 한 'ngRoute'의존성에 동의합니다.
mayankcpdixit

나는 js 라이브러리 지옥에 조금 지쳤다. 모듈별로 적절한 스택 모듈을 찾는 것보다 더 좋은 방법이 있어야합니다.

이것이 @SamanthaAtkins의 방법입니다. 필요한 것을 알고 있다면 종속성을 주입하고 해당 종속성에 대한 코드가없는 경우 JS 파일을 포함시킵니다. 누군가가 제안하면 더 나은 방법으로 감사하겠습니다.
mayankcpdixit 2018 년

3

제 경우에는 파일이 잘못된 범위로 축소 되었기 때문입니다. 배열을 사용하십시오!

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

커피 구문 :

app.controller 'StoreController', Array '$http', ($http) ->
  ...
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.