この質問のjsFiddleはここにあります:http://jsfiddle.net/Hsw9F/1/
JavaScript(jsFiddleconsole.log
で利用可能なデバッグ情報)
var app = angular.module('StackOverflow',[]);
function ParentController($scope) {
$scope.parentCounter = 5;
}
function ChildController($scope) {
$scope.childCounter = $scope.parentCounter;
$scope.increaseCounters = function() {
++$scope.parentCounter;
++$scope.childCounter;
};
}
上記の例では、とという名前の親コントローラーと子コントローラーparentCounter
にchildCounter
それぞれカウンターがあります。また、子コントローラーに、increaseCounters()
両方のカウンターを1つ増やすという名前の関数を提供しました。
これらのカウンターは両方ともページに表示されます。
<div ng-app="StackOverflow">
<div ng-controller="ParentController">
Parent Counter: {{parentCounter}}<br />
<div ng-controller="ChildController">
Child Counter: {{childCounter}}<br />
<a href="javascript:void(0)"
ng-click="increaseCounters()">Increase Counters</a>
</div><!-- END ChildController -->
</div><!-- END ParentController -->
</div><!-- END StackOverflow app -->
問題は、AngularJSがページ上のを更新していないようであり、カウンターの増加関数が呼び出され{{parentCounter}}
たときにのみ更新されることです。{{childCounter}}
見落としているものはありますか?