2

$scope.data.xxxxAngularJS アプリケーションの多くの場所で etcを使用しています。現在、次のように各コントローラーで $scope.data を宣言しています。

$scope.data = {}

これを行うのに適した場所はありますか。たとえば、 app.js ファイルを .config または .run に設定するときに、これを行う方がよいでしょうか?

4

3 に答える 3

5

置ける場所が多い

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;
})
于 2013-11-09T19:12:35.327 に答える
3

少なくとも 2 つのオプションを使用できます。

  • $rootScope収納としてご利用ください。

  • を使用しserviceます。サービスは、任意のコントローラーに挿入して、コントローラーのスコープでその値を公開できるシングルトンです。

使用することをお勧めしますservice(少なくとも私にとっては、より良い方法です)。$rootScope すべてのコントローラーからグローバルを確認できます。

で見ることができるストレージとしてサービスを使用する方法の良い例Fiddle

于 2013-11-09T19:13:53.130 に答える
1

あまり。アプリケーションにルートコントローラーがあり、他のコントローラーが内部にネストされている場合は$scope.data、そこに設定できますが、それはおそらくあなたが望むことではありません-すべてのコントローラーが同じdataオブジェクトを使用します。1 つのコントローラーがそれを変更すると、他のすべてのコントローラーでも変更されます。

(私が推測する) 各コントローラーに個別のコントローラーが必要なため$scope.data、各コントローラーを個別に初期化する必要があります。

于 2013-11-09T19:05:35.213 に答える