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.
Comments
Post a Comment