In the area of ββthe parent controller, I defined selectedItem , which is set to 'x'. Then, in the child scope, I defined selectedItem using ngModel:
<div ng-app> <div ng-controller="CtrlA"> <div ng-controller="CtrlB"> <select ng-model="selectedItem" ng-options="item for item in items"> </select> </div> </div> </div> function CtrlA($scope) { $scope.selectedItem = 'x'; $scope.items = ['x', 'y']; } function CtrlB($scope) {}
When the page is loaded, selectedItem correctly set to "x" as expected. When I select "y", the selectedItem in the CtrlB $ area gives "y" as expected.
But when I check the scope of $scope.selectedItem in CtrlA (using AngularJS batarang), it gives an "x".
jsFiddle: http://jsfiddle.net/sudhh/GGKjp/2/
Preview page: http://fiddle.jshell.net/sudhh/GGKjp/2/show/light/ (for checking with angularjs batarang)
Why is the scope $scope.selectedItem in CtrlA not updated to 'y'? What is the explanation?
I prefer not to use events or rootScope to update selectedItem in the parent area (for training purposes).
source share