1

こんにちは、私の最初の角度のプロジェクトで働いて、私は私のコントローラのいずれかで使用しているサービスから値を見ることができないとこの問題に遭遇しました。また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クエリからのエラー応答を取得するには、$promiseプロパティの.catchメソッドを使用します。

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

ドキュメントから:

  • $promise:このインスタンスまたはコレクションを作成した元のサーバーとの対話の約束

    リソースインスタンスやコレクションは、これらの追加のプロパティを持っています。

成功すると、約束は、サーバーからのデータで更新された同じリソースインスタンスまたはコレクションオブジェクトで解決されます。これにより、resolve section of $routeProvider.when()で、リソースがロードされるまでビューレンダリングを延期するのが容易になります。

失敗すると、リソースプロパティなしでhttp responseオブジェクトで約束が拒否されます。

- AngularJS $resource Service API Reference

+0

おかげで多くを追加! @georgeawg – jordan

関連する問題