angularjs - How to Get Error Response from ngResource $resource query -


hi working on first angular project , i've run problem not being able see value service im using in 1 of controllers.

also characterservice.query() fine value of errormessage not showing up

thanks help

service:

angular.module('characterresource',['ngresource'])  .factory('characterservice',['$resource',function($resource){ var self = this;  self.errormessage = false;  return $resource('http://gateway.marvel.com:80/v1/public/characters?limit=90&apikey=apikey',null, {      query: {       method: 'get',       isarray: false,       transformresponse: function(data) {         return angular.fromjson(data).data;       },       interceptor:{         responseerror:function(error){             console.log(error);             self.errormessage = true;         }       }     }  });  }]); 

controller:

angular.module('charactersctrl', []).controller('characterscontroller',['characterservice', function(characterservice) { var self = this; self.sorttype     = 'name'; // set default sort type self.sortreverse  = false;  // set default sort order //self.search  = ' ';     // set default search/filter term  self.errormessage = characterservice.errormessage; console.log(characterservice.errormessage);  self.init = function(){     self.getcharacters(); }  self.getcharacters = function(){     self.characters = characterservice.query(); }  self.init();  }]); 

there no need use error interceptor. error response ngresource query, use .catch method on $promise property.

self.getcharacters = function(){     self.characters = characterservice.query();     self.characters.$promise.catch( function(errorresponse) {         console.log(errorresponse);         self.errormessage = true;     });      } 

from docs:

the resource instances , collections have these additional properties:

  • $promise: promise of original server interaction created instance or collection.

on success, promise resolved same resource instance or collection object, updated data server. makes easy use in resolve section of $routeprovider.when() defer view rendering until resource(s) loaded.

on failure, promise rejected http response object, without resource property.

--angularjs $resource service api reference


Comments