2016-11-04 2 views
0

저는 angularjs 1.5.8을 사용하고 있습니다.

나는 각도로 HTTP 요청을 취소하기 위해 노력하고있어이 오류를 얻을 :

$cancelRequest is not a function

내 코드 :

app.factory('User', function($resource) { 
    var getUsersResource = $resource(
     '/users', 
     null, 
     {get : {method: 'GET', isArray: true, cancellable: true}} 
    ); 

    return { 
     getUsers : function() { 
      return getUsersResource.get({}, 
       function(data) { 
        ... 
       }, function(error) { 
        ... 
       } 
      ); 
     } 
    }; 
}); 

app.controller('InitController', function($rootScope, User, ...) { 
    ... 
    User.getUsers(); 
    ... 
} 

app.factory('AuthInterceptor', function($q, $location, $injector) { 
    return { 
     responseError: function(response) { 
      if (response.status === 401) { 
       $injector.get('$http').pendingRequests.forEach(
        function (pendingReq) { 
         pendingReq.$cancelRequest(); 
        } 
       ); 
       $location.path('login'); 
      } 
      return $q.reject(response); 
     } 
    }; 
}); 

당신은 내가이 오류를 해결할 수있는 방법을 알고 있나요?

감사

답변

0

문서는 $cancelRequest 자원 객체를 사용하는 것을 제안한다. 처음 검토 한 결과 User 공장에서 $ resource를 올바르게 사용하고있는 것으로 보입니다. 그러나 나는 당신이 AuthInterceptor 공장 내에서 이것을 어떻게 구현하는지 확신하지 못합니다. 당신이 User.getUsersSources()을 사용하고있는 것처럼 보이지 않습니다. 따라서 오류가 발생하는 이유는 $cancelRequestion을 올바르게 사용하지 않았기 때문입니다. 즉, 코드의 다른 부분을 포함하는 것을 잊었을 수도 있습니다.

이상적으로는 User.getUserResources()$resource 개체가 AuthInteceptor에 전달되어야합니다. 내가 User.getUsersResource()를 수행 할 때

+0

나는 아무 $의 cancelRequestion 방법 '배열 [0] $ 약속이 개체를 얻을 : D를 해결 $ : 거짓 길이 : 0 __proto__ : 배열 [0]' – Nan

+0

수 당신은 해결책의 예를 들어 주시겠습니까? – Nan

+0

예가 없습니다. 설명서에서 읽은 것만 둡니다. https://docs.angularjs.org/api/ngResource/service/$resource – richdotjs

관련 문제