In einem übergeordneten Controller-Bereich habe ich selectedItem
definiert, die auf 'x' festgelegt ist. Dann in dem Kind Umfang habe ich selectedItem
mit ngModel definiert:Vererbung für Bereiche in AngularJS
<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) {}
Wenn die Seite geladen wird, wird die selectedItem
richtig auf ‚x‘, wie erwartet. Wenn ich 'y' wähle, gibt in CtrlB $ scope 'y' wie erwartet aus.
Aber wenn ich $scope.selectedItem
in CtrlA
Geltungsbereich (mit AngularJS Batarang) untersuchen, gibt es "x".
jsFiddle: http://jsfiddle.net/sudhh/GGKjp/2/
Vorschauseite: http://fiddle.jshell.net/sudhh/GGKjp/2/show/light/ (für mit AngularJS batarang Inspektion)
Warum ist $scope.selectedItem
in CtrlA
Umfang nicht auf 'y' aktualisiert zu werden? Was ist die Erklärung?
Ich bevorzuge keine Ereignisse zu verwenden oder zu aktualisieren selectedItem
im übergeordneten Bereich (für Lernzwecke).
Seien Sie sicher, mit Stapelüberlauf Frage * http zu lesen: //stackoverflow.com/questions/14049480 * Es gibt einen guten Überblick über die Vererbung von Bereichen in AngularJS. – Martijn