这是由于原型继承是如何工作的。
当您
$scope.x在子控制器中请求时,它会检查x是否在其作用域中定义,如果未定义,则在父作用域中查找x。
如果您分配给子范围的
x属性,则只会修改子范围。
解决此问题并获得共享行为的一种简单方法是使用对象或数组。
function ParentCtrl($scope) { $scope.model = {x: 5, y: 5};}function ChildCtrl($scope) { $scope.update = function(x, y) { $scope.model.x = x; $scope.model.y = y; };}在这里,更改将在两个范围中都是可见的,因为它们
$scope.model将在父范围和子范围中都引用同一对象。
约翰·林德奎斯特(John Lindquist)对此有视频。



