2014-07-04 2 views
1

다양한 $resource의 이벤트에 대한 로깅 시스템을 구축하려고합니다. 나는 내가 원했던 것을 정확히 구현 한 공장을 가지고있다. 그러나 컨트롤러를 불필요한 코드로 오염시키고 싶지 않다. 리소스가 트리거 될 때마다 로거 팩토리를 트리거하고 싶다. 공장에 전송되는 데이터를 사용자 정의 할 수 있음).

$resource에서 다양한 방법을 통해이를 수행 할 방법을 찾지 못하는 것 같습니다.

이 유형의 문제를 해결하기위한 아이디어 나 제안이 있으십니까? 내가 그것을 지나치게 복제하고 있는가?

+1

은'$ httpProvider.interceptors'를 사용할 수 있습니다. – charlietfl

답변

0

인터셉터를 사용하는 것이 좋습니다. 여기에 우리가 모든 요청에 ​​토큰이 만들어지고 추가하는 데 사용하는 샘플입니다 : 당신이 볼 수 있듯이

.factory 'TokenInterceptor', ($q, $window, AuthenticationService) -> 
return { 
    request: (config) -> 
     config.headers = config.headers || {} 
     if $window.sessionStorage.username 
      config.headers.Authorization = $window.sessionStorage.token 
     config 
    response: (response) -> 
     response || $q.when(response) 
} 

.config ($httpProvider) -> 
    $httpProvider.interceptors.push('TokenInterceptor') 

, 우리는 당신이 내가 생각하고 싶은 것을 기본적 인 인터셉터에 공장을 추가합니다.

관련 문제