2016-09-11 3 views
0

나는 다음과 같은 구성 요소가있는 내가 서비스를 주입하기 위해 노력하고 있습니다각 catch되지 않은 오류 ReferenceError가 : 서비스 정의되지 않은

angular. 
    module('phoneList'). 
    component('phoneList', { 
    templateUrl: '/static/common/angular/phone-list/phone-list.template.html', 
    controller: ['$http', 'authenticationService', 
     function PhoneListController($http, authenticationService) { 
     var self = this; 


      authenticationService.authenticate().then(function(){ 
       console.log('it worked!!!!!!!!'); 
       }); 

     } 
    ] 
    }); 

서비스는 다음과 같습니다

angular.module('authentication').factory('authenticationService', function($http, $se){ 
    function authenticate(){ 

     $http.post('/o/token/', data, config) 
       .success(function (data, status, headers, config) { 
        console.log('auth service: '+data['access_token']); 
        $sessionStorage.access_token = data['access_token']; 
       }); 
    }  
    function getToken(){ 
     return $sessionStorage.access_token; 
    } 
    return { 
     authenticate:authenticate, 
     getToken:getToken 
    }; 
}); 

내 전화 목록 .module.js은 다음과 같습니다

angular.module('phonecatApp', [ 
    'phoneList', 
    'authentication', 
]); 

angular.module('phoneList', ['authentication']); 

내가 이것을 실행하면 다음과 같은 에러가 발생합니다

나는에서 'authenticationService을' ''넣었을 때

Uncaught ReferenceError: authenticationService is not defined

, 나는 오류를 얻을 :

Error [$injector:unpr] authtenticationService

+0

을 app.module.js 그것과 나는 같은 오류를 얻는다. – Atma

+0

'angular.module ('phonecatApp')'를 두 번 정의했습니다. 이것은 모듈을 두 번 만들 수는 없다는 것을 의미합니다. 또한'authtenticationService' 오류 (오타 일 수도 있습니다)에 오류가 있습니다. – A1rPun

답변

1

서비스가 제대로 PhoneListController에 주입되지 않은 것 같다. 그것은에

변경 : 배열의 문자열이 단지입니다

controller: ['$http', 'authenticationService', 
    function PhoneListController($http, authenticationService) { 
... 

는 의존성이 삽입 참조 안전 축소를 유지합니다. 서비스는 여전히 함수 인수로 추가해야합니다. 또한

각 구성 요소에 대한 일단 angular.module를 호출해야합니다 :

내가 노력 A1rPun @

angular.module('phonecatApp', [ 
    'ngRoute', 
    'phoneList', 
    'authentication', 
]); 

전화 list.module.js

angular.module('phoneList', ['authentication']); 
+0

@Oberon에게 도움을 주셔서 감사합니다. 여전히 오류가 발생합니다 : 오류 [$ injector : unpr] authtenticationService. authtenticationService를 '인증'대신 모듈 종속성에 추가해야합니까? – Atma

+1

나는 @ A1rPun 제안을 따르고'phoneList'와'phonecatApp' 모듈을 _once_로 정의합니다. 나는 가능한 대안으로 나의 대답을 편집 할 것이다. – Oberon

+0

나도 그랬어. 나는 똑같은 오류가 난다. 도와 줘서 고마워. – Atma