angular Docs に記載されているように、AngularJS には DOM ベースのコントローラー継承があります。
<div ng-controller="BaseController">
<p>Base Controller Value: {{value}}</p>
<button ng-click="updateValue()">Update In Base</button>
<div ng-controller="DerivedController">
<p>Derived Controller Value: {{value}}</p>
<button ng-click="updateValue()">Update In Derived</button>
</div>
</div>
スコープ変数「値」は BaseController にのみ存在します。これに基づいて、BaseController または DerivedController のメソッドで値を変更しながら、両方の値を更新する必要があるとします。ただし、個々のスコープ変数のみが更新されます。
これは同じ例を示すフィドルです: http://jsfiddle.net/6df6S/1/
現在のスコープの直接の子と直接の親に伝達するために、レベルでどのように変更を行うことができますか。
これを実装するには、
$scope.$watch
それまたはそのようなウォッチャーを使用せずにこれを行う方法はありますか?
編集1:
ここで $scope.$watch を使用することで、私が意味したことです
$scope.$watch("value", function () {
$scope.$broadcast("childChangeListener"); //Downwards to all children scopes
$scope.$emit("parentChangeListener"); //Upwards to all parent scopes
});
そのようなメカニズムを使用せずに、すべてのスコープで値が更新される方法を探していました。