1

hi работает над моим первым угловым проектом, и я столкнулся с этой проблемой, не имея возможности увидеть значение из службы im, используемой в одном из моих контроллеров.

также characterService.query() отлично только значение ErrorMessage не отображается

спасибо за вашу помощь

Услуги:

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

}]); 
+0

создать plunker воспроизвести проблему, добавьте свой вид код также – Sajeetharan

ответ

0

Нет необходимости использовать перехватчик ошибок. Чтобы получить ответ об ошибке из запроса ngResource, используйте метод .catch на свой $promise.

self.getCharacters = function(){ 
    self.characters = characterService.query(); 
    self.characters.$promise.catch(function(errorResponse) { 
     console.log(errorResponse); 
     self.errorMessage = true; 
    });  
} 

От Docs:

Экземпляры ресурсов и коллекции имеют следующие дополнительные свойства:

  • $promise: обещание исходного сервера взаимодействия, который создал данный экземпляр или коллекцию.

Успешное обещание разрешено с помощью экземпляра экземпляра или объекта ресурса, обновленного данными с сервера. Это упрощает использование в resolve section of $routeProvider.when(), чтобы отложить рендеринг вида до загрузки ресурсов (ов).

При отказе обещание отклоняется объектом http response без свойства ресурса.

- AngularJS $resource Service API Reference

+0

спасибо большое !!! @georgeawg – jordan