2013-06-12 2 views
0

저는 AngularJS에 서비스를 작성하여 일부 데이터를 저장했으며, 실패하면 사용자에게 경고합니다. AngularJS 약속과 함께 호출되는 리소스 오류 콜백

myResource.$save(function(success) { 
    console.log(success); 
}, function(error) { 
    console.log(error); 
}); 

나는 오류 콜백의 인수 등 데이터, 상태, 헤더의 객체가 될 것으로 기대하지만, 내가 할 모든은 "다음의 객체이다 : 그러나, 나는 내 자원을 만들고 $ 호출 한 후 저장 "기능. 나는 JSFiddle에서 그것을 조롱하려고 : 나는 원래 예상대로

http://jsfiddle.net/RichardBender/KeS7r/1/

그러나,이 예제는 작동합니다. 이 JSFiddle 예제를 잡아 당겨서 프로젝트에 넣었습니다. 다른 모든 것을 동등하다고 말할 수있는 한 원래의 설명과 동일한 문제가 있습니다. 왜 이런 사람이 있을지 아무도 모른다. 내 프로젝트는 Yeoman/Bower/Grunt와 함께 만들어졌지만 왜 그런 것들이 여기에 영향을 미칠지는 알 수 없습니다.

덕분에, 리처드

답변

4

나는이 문제를 해결했다. 오류가 내 HTTP 인터셉터에서 발생했습니다. 오류 코드에서 실수로 $ q.reject (응답) 대신 $ q.reject (약속)를 반환했습니다.

도청 버전 :

.factory('httpInterceptor', function($q) { 
    return function(promise) { 
     return promise.then(
      // On success, just forward the response along. 
      function(response) { 
       return response; 
      }, 
      function(response) { 
       // ... where I process the error 
       return $q.reject(promise); 
      } 
     ); 
    }; 

고정형 버전 :

.factory('httpInterceptor', function($q) { 
    return function(promise) { 
     return promise.then(
      // On success, just forward the response along. 
      function(response) { 
       return response; 
      }, 
      function(response) { 
       // ... where I process the error 
       return $q.reject(response); 
      } 
     ); 
    }; 

리차드