Search code examples
angularjsangular-resource

How to handle $resource service errors in AngularJS


I am making requests to my API and I am using AngularJS $resource module. It's different from $http so I don't know how to handle my errors.

My service:

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,

            }
        });
    }]);

My Controller:

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

I want something like this or .. I don't know a way to handle errors if my API is not working..

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

Solution

  • you can pass the error handler as a second parameter toquery.

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

    EDIT:

    to make things a bit clearer, some examples:

    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
    });