嵌套控制器

嵌套控制器也链接了 $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 指令会创建一个新的控制器实例 - 这通常会产生混淆和意外结果。