matsko
matsko

Reputation: 22183

AngularJS Failed Resource GET

Does anyone know how you can check to see that a resource failed to be fetched in AngularJS?

For example:

//this is valid syntax
$scope.word = Word.get({ id : $routeParams.id },function() {
    //this is valid, but won't be fired if the HTTP response is 404 or any other http-error code
});

//this is something along the lines of what I want to have 
//(NOTE THAT THIS IS INVALID AND DOESN'T EXIST)
$scope.word = Word.get({ id : $routeParams.id },{
    success : function() {
      //good
    },
    failure : function() {
      //404 or bad
    }
});

Any ideas?

Upvotes: 29

Views: 23984

Answers (3)

Anavar Bharmal
Anavar Bharmal

Reputation: 329

This is just to inform.

From angular 1.6.x, success and failure is deprecated. So please now follow the then and catch on behalf of success and failure.

So, the above code look like in angular 1.6.x is as below:

$scope.word = Word.get({ id : $routeParams.id }).then(=> () {
    //this is valid, but won't be fired if the HTTP response is 404 or any  other http-error code
}).catch(=> () {
    // error related code goes here
});

Upvotes: 0

Gloopy
Gloopy

Reputation: 37785

An additional callback function after your first callback function should fire when there is an error. Taken from the docs and group post:

$scope.word = Word.get({ id : $routeParams.id }, function() {
    //good code
}, function(response) {
    //404 or bad
    if(response.status === 404) {
    }
});
  • HTTP GET "class" actions: Resource.action([parameters], [success], [error])
  • non-GET "class" actions: Resource.action([parameters], postData, [success], [error])
  • non-GET instance actions: instance.$action([parameters], [success], [error])

Upvotes: 49

Rodrigo Chiong
Rodrigo Chiong

Reputation: 585

Just to answer @Adio 's question too.

The second callback will be called when any http response code is considered to be an error by AngularJS (only response codes in [200, 300] are considered success codes). So you can have a general error handling function and don't care about the specific error. The if statement there can be used to do different actions depending on the error code, but it's not mandatory.

Upvotes: 5

Related Questions