Как я могу принимать переменные изменения и легко распространять их обратно в ParentCtrl, несмотря на "новый" var, созданный в ChildCtrl? Дополнительные очки для минимальных и не $$ и $watch (упрощают их реализацию)
ParentCtrl
-
ChildCtrl/ChildCtrl2/ChildCtrl3/ChildCtrl4
- Вид
My ChildCtrl достаточно разный, где я не могу легко абстрагироваться от макета и ng-view, но все они зависят от тех же функций в ParentCtrl.
$scope.searchTerms определяется в ParentCtrl, но поле ввода с ng-model = 'searchTerms' находится в представлении дочерних контроллеров. Когда этот var изменяет, он не отражается в ParentCtrl только ChildCtrls.
Пример: http://jsfiddle.net/JHwxP/22/
HTML Partial
<div ng-app>
<div ng-controller="Parent">
parentX = {{x}} <br/>
parentY = {{y}}<br/>
<div ng-controller="Child">
childX = {{x}}<br/>
childY = {{y}}<br/>
<a ng-click="modifyBothScopes()">modifyBothScopes</a><br>
<br>
The changes here need to appear in 'Parent'. <input ng-model='y'>
</div>
</div>
</div>
Контроллеры
function Parent($scope) {
$scope.x= 5;
$scope.y= 5;
}
function Child($scope) {
$scope.modifyBothScopes= function() {
$scope.$parent.x++;
};
}
ОБНОВЛЕНИЕ
В настоящее время я пытаюсь использовать общий сервис: https://gist.github.com/exclsr/3595424
ОБНОВЛЕНИЕ
Попытка испускать/широковещательную систему
РЕШИТЬ Проблема: Я сохранял $scope.searchTerms в родительском и при изменении создавал пробел в области child $.
Решение: Я должен был сделать $scope.search.terms в родительском, а когда он изменился в ребёнке, он будет пузыриться до родителя.
Пример: http://jsfiddle.net/JHwxP/23/