2016-06-29 2 views
0

이 알 수없는 공급자 오류로 고민하고 있으며 무엇을 잘못하고 있는지 궁금합니다. 이 구조를 가지고 : 인덱스 HTML에서 main.js

'use strict'; 

angular.module('myApp') 
    .controller('MainCtrl', ['navService', function (navService) { 
    this.awesomeThings = [ 
    'HTML5 Boilerplate', 
    'AngularJS', 
    'Karma' 
]; 

    this.active = false; 

    navService.getPosition(); 

}]); 

에서

나는 겨 컨트롤러 = "MainCtrl" 그리고 마지막으로 navService에 있습니다 주요 app.js

을에서

angular.module('myApp') 
.factory('navService', ['$routeProvider', '$location', function ($routeProvider, $location) { 
    function getPosition() { 
     /*code here */ 
    } 

    return { 
     getPosition: getPosition 
    }; 
}]); 

angular 
    .module('cavyrApp', [ 
'ngAnimate', 
'ngCookies', 
'ngMessages', 
'ngResource', 
'ngRoute', 
'ngSanitize', 
'ngTouch' 
    ]).config........... 
+1

당신이 당신의 머리 부분에 각도-route.js을 포함 않았다가 제공 할 서비스를 구성 할 수 - 당신은 단지 config 방법에 주입 할 수 있습니까? – Sankar

+1

또한 메인 애플리케이션 모듈 선언에'ngRoute'을 삽입 했습니까? – Lex

+0

@SankarRaj - 예 - 둘 다 있습니다. – Vladyn

답변

2

$routeProvider은 제공 업체이므로 공장/서비스에 투입 할 수 없습니다.

module.config(function($routeProvider) { 
    // configure the routes here 
}); 
+0

네 - 그게 다야! 많은 감사합니다 - 나는 navService가 없다고 말했기 때문에 나는 실수로 미끄러졌습니다. 그러나 분명히 진짜 이유는 잘못된 주사였습니다. – Vladyn

0

injectfactroy은 S :

angular.module('myApp',['ngRoute']); //route inject 

및 컨트롤러 : 모든

angular.module('myApp').controller('MainCtrl', function(navService) { 
}); 
+0

주입 주석을 제거하는 것 외에도 (코드가 축소되면 코드가 깨질 수 있습니다.) 이것은 ** 정확히 ** OP가 공장을 어떻게 사용하고 있는지입니다. – Lex

+0

이 방법은 유감스럽게도 작동하지 않습니다. 필자가 권고 한대로 두 번째 인수 배열을 제거했습니다. – Vladyn

+0

2 개의 답변을 조합하여 편집하십시오. –

0

첫째, 당신은 ...

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-route.js" type="javascript"> </script> 

다음

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

ngRoute을 주사를이 포함되어야한다 앱에서

+0

나는 확실히 둘 다 포함하고 주입해야한다! – Vladyn

관련 문제