嵌套控制器
嵌套控制器也链接了 $scope
。更改嵌套控制器中的 $scope
变量会更改父控制器中的相同 $scope
变量。
.controller('parentController', function ($scope) {
$scope.parentVariable = "I'm the parent";
});
.controller('childController', function ($scope) {
$scope.childVariable = "I'm the child";
$scope.childFunction = function () {
$scope.parentVariable = "I'm overriding you";
};
});
现在让我们尝试处理它们,嵌套。
<body ng-controller="parentController">
What controller am I? {{parentVariable}}
<div ng-controller="childController">
What controller am I? {{childVariable}}
<button ng-click="childFunction()"> Click me to override! </button>
</div>
</body>
嵌套控制器可能有它的好处,但在这样做时必须记住一件事。调用 ngController
指令会创建一个新的控制器实例 - 这通常会产生混淆和意外结果。