ホームページ >ウェブフロントエンド >jsチュートリアル >AngularJS コントローラー間でデータを共有するにはどうすればよいですか?
AngularJS では、特にマルチステップを含む複雑なアプリケーションでは、コントローラ間でのデータ共有が重要になることがあります。あるステップで入力されたデータを後続のステップで使用する必要があるフォーム。この記事では、コントローラー間でデータ共有を実現するためのさまざまな方法について説明します。
AngularJS を使用すると、オブジェクトを返すファクトリを作成できます。このようなオブジェクトをコントローラー間で共有すると、データの同期が可能になります。次の例を考えてみましょう:
<br>// Factory<br>myApp.factory('Data', function() {<br> return { Field: '' };<br> });</p> <p>// コントローラー<br>myApp.controller('FirstCtrl', function($scope, Data) {<br> $scope.Alpha = Data;<br>});</p> <p>myApp.controller('SecondCtrl', function($scope, Data) {<br> $ scope.Beta = Data;<br>});<br>
この中でこの場合、FirstCtrl と SecondCtrl は両方とも同じ Data オブジェクトを共有し、Field プロパティにアクセスして変更できるようにします。
Forより詳細な制御を可能にするために、AngularJS はファクトリを通じてゲッターとセッターを定義する方法を提供します。このメソッドは、データにアクセスして更新するための限定的なインターフェイスを提供します。
<br>myApp.factory('Data', function () {<br> var data = { FirstName: '' }; </p> <p>戻る{</p> <pre class="brush:php;toolbar:false">getFirstName: function() { return data.FirstName; }, setFirstName: function(firstName) { data.FirstName = firstName; }
};
});
// コントローラー
myApp.controller('FirstCtrl', function($scope, Data) {
$スコープ.$watch('firstName', function(newValue) { Data.setFirstName(newValue); });
});
myApp.controller('SecondCtrl', function($scope, Data) {
$scope.$watch(function() { return Data.getFirstName() ; }, function(newValue) { $scope.firstName = newValue; });
});
ここで、ファクトリは getter と setter を使用して FirstName プロパティへのアクセスを制御し、コントローラーがプロパティの設定と変更を監視できるようにします。 .
共有コントローラー間のデータは、インタラクティブで動的な AngularJS アプリケーションを構築するために不可欠です。この記事で説明する方法は、データ同期のための堅牢でカスタマイズ可能なソリューションを提供し、コントローラーが協力して複雑なデータ フローを効率的に管理できるようにします。
以上がAngularJS コントローラー間でデータを共有するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。