반응형
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
반응형
'programing' 카테고리의 다른 글
Angular Js에게 특정 루트를 무시하도록 지시하는 방법 (0) | 2023.02.11 |
---|---|
WordPress가 /temes/ 폴더에서 테마를 인식하지 못함 (0) | 2023.02.11 |
Angular ng-repeat에서의 orderBy 배열 항목 값 (0) | 2023.02.11 |
익명 객체에 JSON 직렬화 해제 (0) | 2023.02.11 |
IIS 7 php-cgi의 WordPress를 통한 CPU 사용 (0) | 2023.02.11 |