View:
<div ng-controller="ParentCtrl">
<div ng-controller="ChildCtrl">
<input type="text" ng-model="myText">
</div>
<button ng-click="click()">Click</button>
</div>
Controller:
angular.module('app', [])
.controller('ParentCtrl', [$scope, ParentCtrl])
.controller('ChildCtrl', [$scope, ChildCtrl]);
function ParentCtrl($scope) {
$scope.name = {title: ''};
$scope.click = function() {
console.log($scope.name);
}
}
function ChildCtrl($scope) {
$scope.$parent.name.title = $scope.myText;
}
Если в дочернем контроллере явно переопределяю $scope.$parent.name.title = 'Test' - все работает, а когда меняю значение в input'e, то изменений не следует.
Как правильно решить данную задачу? Может необходимо идти иным способом? Прошу Вашего мнения, господа!