Angularjs 如何从ngResource$resource查询中获取错误响应
大家好,我正在做我的第一个angular项目,我遇到了这个问题,因为我无法看到我在一个控制器中使用的服务的值 此外,characterService.query()也很好,只是没有显示errorMessage的值 谢谢你的帮助 服务:Angularjs 如何从ngResource$resource查询中获取错误响应,angularjs,angular-services,ngresource,angular-controller,Angularjs,Angular Services,Ngresource,Angular Controller,大家好,我正在做我的第一个angular项目,我遇到了这个问题,因为我无法看到我在一个控制器中使用的服务的值 此外,characterService.query()也很好,只是没有显示errorMessage的值 谢谢你的帮助 服务: angular.module('characterResource',['ngResource']) .factory('characterService',['$resource',function($resource){ var self = this;
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;
}
}
}
});
}]);
控制器:
angular.module('CharactersCtrl', []).controller('CharactersController',['characterService', function(characterService) {
var self = this;
self.sortType = 'name'; // set the default sort type
self.sortReverse = false; // set the default sort order
//self.search = ' '; // set the 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();
}]);
不需要使用错误拦截器。要从
ngResource
查询中获取错误响应,请在其$promise
属性上使用.catch
方法
self.getCharacters = function(){
self.characters = characterService.query();
self.characters.$promise.catch( function(errorResponse) {
console.log(errorResponse);
self.errorMessage = true;
});
}
从文档中:
资源实例和集合具有以下附加属性:
:创建此实例或集合的原始服务器交互的承诺$promise
self.getCharacters = function(){
self.characters = characterService.query();
self.characters.$promise.catch( function(errorResponse) {
console.log(errorResponse);
self.errorMessage = true;
});
}
--无需使用错误拦截器。要从
ngResource
查询中获取错误响应,请在其$promise
属性上使用.catch
方法
self.getCharacters = function(){
self.characters = characterService.query();
self.characters.$promise.catch( function(errorResponse) {
console.log(errorResponse);
self.errorMessage = true;
});
}
从文档中:
资源实例和集合具有以下附加属性:
:创建此实例或集合的原始服务器交互的承诺$promise
self.getCharacters = function(){
self.characters = characterService.query();
self.characters.$promise.catch( function(errorResponse) {
console.log(errorResponse);
self.errorMessage = true;
});
}
--创建一个Plunk以复制问题,同时添加视图代码创建Plunk以复制问题,同时添加视图代码