Angularjs: 複数の $resource URL / データソースを提供するサービスですか? 質問する

Angularjs: 複数の $resource URL / データソースを提供するサービスですか? 質問する

コントローラーに JSON データを提供する Angular サービス/プロバイダーがあり、これはうまく機能します。

    angular.module('myApp.services', ['ngResource']).
      factory("statesProvider", function($resource){
      return $resource('../data/states.json', {}, {
        query: {method: 'GET', params: {}, isArray: false}
      });
    });

しかしまた、別のファイルから同じコントローラーに JSON データを提供する必要もありますcounties.json

両方のファイルをコントローラーに提供するサービスを作成する方法はどこで確認できますか?

ベストアンサー1

サービスを更新して、単一のリソースではなくリソースのハッシュを返すことができます。

angular.module('myApp.services', ['ngResource']).
  factory("geoProvider", function($resource) {
    return {
      states: $resource('../data/states.json', {}, {
        query: { method: 'GET', params: {}, isArray: false }
      }),
      countries: $resource('../data/countries.json', {}, {
        query: { method: 'GET', params: {}, isArray: false }
      })
    };
  });

.query()関数名の末尾に追加して使用できるようになります。つまり、これをgeoProvider.states.query()コントローラーgeoProvider.countries.query()myApp.services注入し、geoProviderコントローラー自体にもサービスを注入する必要があります。

おすすめ記事