У AngularJS есть наследование контроллера на основе DOM, как указано в документах angular.
<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/
Как можно изменить изменения на уровне для непосредственного дочернего элемента и непосредственного родителя текущей области.
Мы можем реализовать это, используя
$сфера. $Смотреть
Есть ли способ сделать это, не используя его или таких наблюдателей?
Изменить 1:
Используя $scope. $watch, вот что я имел в виду
$scope.$watch("value", function () {
$scope.$broadcast("childChangeListener"); //Downwards to all children scopes
$scope.$emit("parentChangeListener"); //Upwards to all parent scopes
});
Я искал способы, в которых значение будет обновляться во всех областях без использования такого механизма.