この記事の例では、AngularJS コントローラー間の通信方法について説明します。参考までに皆さんに共有してください。詳細は以下の通りです:
1. スコープの継承メソッドを使用します
スコープの継承は js のプロトタイプ継承メソッドに基づいているため、ここでは 2 つの状況が発生します。基本型の場合、親スコープの値を変更すると子スコープに影響します。逆に、子スコープの値を変更すると、子スコープの値にのみ影響し、親スコープの値には影響しません。親スコープが必要であり、サブスコープが値を共有する場合は後者を使用する必要があります。つまり、スコープのどちらかの側での変更はもう一方の側に影響を与える可能性があるためです。種類。
基本型
function Sandcrawler($scope) { $scope.location = "Mos Eisley North"; $scope.move = function(newLocation) { $scope.location = newLocation; } } function Droid($scope) { $scope.sell = function(newLocation) { $scope.location = newLocation; } }
html:
<p ng-controller="Sandcrawler"> <p>Location: {{location}}</p> <button ng-click="move('Mos Eisley South')">Move</button> <p ng-controller="Droid"> <p>Location: {{location}}</p> <button ng-click="sell('Owen Farm')">Sell</button> </p> </p>
オブジェクト
function Sandcrawler($scope) { $scope.obj = {location:"Mos Eisley North"}; } function Droid($scope) { $scope.summon = function(newLocation) { $scope.obj.location = newLocation; } }
html: reee
<p ng-controller="Sandcrawler"> <p>Sandcrawler Location: {{location}}</p> <p ng-controller="Droid"> <button ng-click="summon('Owen Farm')"> Summon Sandcrawler </button> </p> </p>
function Sandcrawler($scope) { $scope.location = "Mos Eisley North"; $scope.$on('summon', function(e, newLocation) { $scope.location = newLocation; }); } function Droid($scope) { $scope.location = "Owen Farm"; $scope.summon = function() { $scope.$emit('summon', $scope.location); } }
<p ng-controller="Sandcrawler"> <p>Sandcrawler Location: {{location}}</p> <p ng-controller="Droid"> <p>Droid Location: {{location}}</p> <button ng-click="summon()">Summon Sandcrawler</button> </p> </p>
りー