私は2つのコントローラ間で通信するコードを書く方法を探していました。私は動作しているが、アプローチが良いか標準であるかわからない1つのコードを得た。 コードを見直して、2つのコントローラ間の通信方法に従うべきだと教えてください。AngularJS:2つのコントローラ間の通信のための正しい方法
<body ng-app="app">
<div ng-controller="firstCtrl">
controller 1
<select ng-options="item for item in items" ng-model="mdl">
</select>
<button ng-click="updateAlphabets()">update</button>
</div>
<div ng-controller="secondCtrl">
controller 2
<select ng-options="item for item in items" ng-model="mdl">
</select>
<button ng-click="updateItems()">update</button>
</div>
</body>
function firstFunc($scope){
$scope.items=["one","two","three"];
$scope.updateAlphabets=function(){
secondFunc($scope);
$scope.updateItems();
};
}
function secondFunc($scope){
$scope.items=["apple","boy","cat"];
$scope.updateItems=function(){
$scope.items=["a","b","c"];
};
}
angular.module("app",[]).controller("firstCtrl",["$scope",
firstFunc]).controller("secondCtrl",["$scope",
secondFunc]);
私は今角を学んでいるので、私は正しいアプローチとパターンの後に大多数の人々が従うので、提案を探しています。ありがとう
おそらく重複http://stackoverflow.com/questions/11252780/whats-the-correct-way-to-communicate-between-controllers-in-angularjs?rq=1 – AlainIb
あなたは、イベントを持っていますあなたのスコープを読み書きすることができる親コントローラを持ち、ファクトリを使用しますが、スコープをリフレッシュするためにファクトリ内の変更を監視する必要があります。 – Walfrat