$scope.data.xxxx
AngularJS アプリケーションの多くの場所で etcを使用しています。現在、次のように各コントローラーで $scope.data を宣言しています。
$scope.data = {}
これを行うのに適した場所はありますか。たとえば、 app.js ファイルを .config または .run に設定するときに、これを行う方がよいでしょうか?
$scope.data.xxxx
AngularJS アプリケーションの多くの場所で etcを使用しています。現在、次のように各コントローラーで $scope.data を宣言しています。
$scope.data = {}
これを行うのに適した場所はありますか。たとえば、 app.js ファイルを .config または .run に設定するときに、これを行う方がよいでしょうか?
置ける場所が多い
var app= angular.module('myApp',[])
サービスとして
app.factory('myData',function(){
return { foo:'bar'}
});
値として
app.value( 'myData', { foo:'bar'});
定数として
app.constant( 'myData', { foo:'bar'});
いずれの場合もmyData
、コントローラー、ディレクティブ、別のサービスなどに挿入してアクセスします
app.controller('SomeController',function($scope, myData){
$scope.data=myData;
})
少なくとも 2 つのオプションを使用できます。
$rootScope
収納としてご利用ください。
を使用しservice
ます。サービスは、任意のコントローラーに挿入して、コントローラーのスコープでその値を公開できるシングルトンです。
使用することをお勧めしますservice
(少なくとも私にとっては、より良い方法です)。$rootScope
すべてのコントローラーからグローバルを確認できます。
で見ることができるストレージとしてサービスを使用する方法の良い例Fiddle
あまり。アプリケーションにルートコントローラーがあり、他のコントローラーが内部にネストされている場合は$scope.data
、そこに設定できますが、それはおそらくあなたが望むことではありません-すべてのコントローラーが同じdata
オブジェクトを使用します。1 つのコントローラーがそれを変更すると、他のすべてのコントローラーでも変更されます。
(私が推測する) 各コントローラーに個別のコントローラーが必要なため$scope.data
、各コントローラーを個別に初期化する必要があります。