AngularJS 응용 프로그램을 리팩토링하고 로그인 서비스를 도입하려고합니다. 현재 내 컨트롤러에는 login()
, logout()
, getCurrentUser()
과 같은 메소드가 있는데, http 요청을하고 사용자 객체를 처리합니다. 여러 컨트롤러에서 getCurrentUser()
메서드를 호출해야하기 때문에 이러한 함수를 서비스로 옮기고 싶습니다. AngularJS에서 로그인 서비스 작성
angular.module('common.login', []).
factory('loginService', function ($http) {
return {
user: null,
error: null
};
});
그래서 순간에 서비스가 아무것도되지 않습니다
나는 다음과 같은 서비스를 작성했습니다. 그러나 오류가 발생합니다 :
Uncaught Error: Circular dependency: loginService <- $http
콜백 함수에서 $ http 종속성을 제거하면 서비스가 작동합니다. 왜 순환 의존성이 있는지 이해하는 데 어려움이 있습니다. loginService
팩토리는 두 개의 장소로 주입됩니다 : ** 메인 모듈의 설정 콜백 **과 ** 로그인 모듈의 컨트롤러 콜백 **. 구성 콜백은 http 인터셉터를 구성하고 로그인 컨트롤러는 http 서비스도 사용합니다.
안녕 lanoxx. DI 문제를 이해하려면 컨트롤러의 서명을 게시하십시오. – blint
나는이 기능을 서비스가 아닌 rootScope에서 수행하는 것이 좋습니다. – Mindstormy