AngularJSを少し勉強してテストすると、いくつかのデータをいくつかのコントローラで利用できるようにサービスを構築する方法に疑問があります。AngularJSでサービスを構成してデータを利用できるようにする方法
私はJSONファイルを持っています。私はそれを私のサービスからロードし、私のコントローラを介してこのサービスを使ってデータにアクセスしたいと思います。
dashboardController.factory ('peopleRepository', function($http) {
return {
getAllPeople: function() {
return $http.get("people.json");
}
}
});
簡単でわかりやすい:
今の私のサービスは、次のようになります。それは罰金だと動作します
dashboardController.controller ('genderCtrl', function ($scope, $rootScope, peopleRepository) {
$scope.males = 0;
$scope.females = 0;
$scope.people = peopleRepository.getAllPeople().success(function(users) {
console.log ("SUCCESS -< ", users);
});
});
...そしてもちろん、すべてのもの: はその後、私のコントローラでは、私はこのような何かを行います。 しかし、私はこれが正しいアプローチではないと確信しています。私はいくつかのコントローラでこのデータにアクセスする必要があり、これは基本的にファイルが何度も読み込まれ、成功イベントがコンテンツをロードするのを待つたびに読み込まれることを意味します。エレガントではありません。 初心者のための提案/ヒント?
あなたは(あなたが最初のロード後にキャッシュにサービスを利用することを可能にする)SPA '単一ページ-app'をするアプリケーションを構築することができます
は、ここで簡単な例を示します。 - ただし、アプリケーションを複数のコントローラに分けている場合は、必要なときにいつでも注入する必要があります。 (私は忘れましたが、アプリケーションにサービスをキャッシュすることもできます) 残りのアプリケーションをどのように構造化しましたか? –