programing

Angular에서 $resource 서비스 오류를 처리하는 방법JS

procenter 2023. 2. 11. 17:22
반응형

Angular에서 $resource 서비스 오류를 처리하는 방법JS

API에 요청을 하고 있으며 AngularJS $resource 모듈을 사용하고 있습니다.$http와는 달라서 어떻게 해야 할지 모르겠어요.

서비스:

var appServices = angular.module('app.services', ['ngResource']);
appServices.factory('Category', ['$resource',
    function($resource){
        return $resource('/apicategoryerr/?format=:format', {}, {
            query: {
                method: 'GET', 
                params: { format: 'json'}, 
                isArray: true,

            }
        });
    }]);

마이 컨트롤러:

...
Category.query(function(data) {
                console.log(data);
            });
...

난 이런 거나...API가 작동하지 않을 경우 오류를 처리하는 방법을 모르겠습니다.

Category.query().success(function() {
                console.log('success');
            }).error(function() {
                console.log('error');
            });

에러 핸들러를 2번째 파라미터로서 건네줄 수 있습니다.query.

Category.query(function(data) {}, function() {});

편집:

예를 들어 다음과 같습니다.

var Resource = $resource('/restapi/resource');

Resource.query(function(data) {
    // success handler
}, function(error) {
    // error handler
});

Resource.query({
    'query': 'thequery'
},function(data) {
    // success handler
}, function(error) {
    // error handler
});

Resource.query().$promise.then(function(data) {
    // success handler
}, function(error) {
    // error handler
});

Resource.query({
    'query': 'thequery'
}).$promise.then(function(data) {
    // success handler
}, function(error) {
    // error handler
});

리소스 생성 단계에서 오류 핸들러를 정의하려면interceptor메서드 설명의 오브젝트(a)responseError속성, 오류 함수에 링크되어 있습니다.

function resourceErrorHandler(response) { ... }

$resource('/path/:param/', {} , 
{
        'get':    {method:'GET', 
                   interceptor : {responseError : resourceErrorHandler}},
        'save':   {method:'POST'},
        'query':  {method:'GET', isArray:true, 
                   interceptor : {responseError : resourceErrorHandler}},
        'remove': {method:'DELETE'},
        'delete': {method:'DELETE'}
};

어디에resourceErrorHandler는 get 메서드 또는 쿼리 메서드의 각 오류에 대해 호출되는 함수입니다.요청된 문제에는 get 메서드만 필요합니다.물론 당신은 그것을 어떤 행동에도 적용할 수 있습니다.

다른 요격기response$리소스가 일반 응답을 캡처하기 위해 존재합니다.

 {'get': {method:'GET', interceptor : {response : resourceResponseHandler}},

가로채기는 다음 중 일부입니다.$http자세한 내용은 문서에서 확인할 수 있습니다.

ng.resource의 새로운 ES6 예시(TypeScript 사용)를 다음에 나타냅니다.

resolve: {
    detail: function (myService, $stateParams) {
        return myService.getEventDetail({ id: $stateParams.id }).$promise.then(data => data, error => false );
    }
}

컨트롤러에서 컨트롤러에 삽입된 '상세'는 데이터(양호) 또는 오류에 대해 false로 해결됩니다.여기서 404의 디스플레이를 처리합니다.

언급URL : https://stackoverflow.com/questions/20584367/how-to-handle-resource-service-errors-in-angularjs

반응형