Я делаю запросы к своему API и использую модуль ресурсов AngularJS $. Он отличается от $ 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');
});
angularjs
angular-resource
Валкирилов
источник
источник
Resource.query().$promise.then(function(data) {}, errorFunction)
. Вам все равно придется включать его в каждое место, где вы используете запрос, но, по крайней мере, вы не будете каждый раз переопределять его.myResource.$save
иmyResource.$delete
является обещанием. Так что вы можете просто сделатьmyResource.$save().then(...)
.Вы можете определить обработчик ошибок на этапе создания ресурса, добавив
interceptor
в описание метода объект соresponseError
свойством, связанным с вашей функцией ошибки.где
resourceErrorHandler
- функция, вызываемая при каждой ошибке метода get или query. Для поставленной проблемы нужен только метод get. Конечно, вы можете применить это к любому действию.Другой перехватчик
response
существует для $ resource, чтобы поймать нормальный ответ.Перехватчики являются частью
$http
модуля, подробнее о них вы можете прочитать в их документации .источник
Вот новый пример ES6 (я использую TypeScript) на моем ng.resource
а затем в моем контроллере «деталь», введенная в контроллер, либо разрешит данные (хорошо), либо false для ошибки, где я обрабатываю отображение 404.
источник