也许 您 不扩展控制器,但是可以扩展控制器或将单个控制器混合为多个控制器。
module.controller('CtrlImplAdvanced', ['$scope', '$controller', function ($scope, $controller) { // Initialize the super class and extend it. angular.extend(this, $controller('CtrlImpl', {$scope: $scope})); … Additional extensions to create a mixin.}]);创建父控制器后,其中的逻辑也将执行。有关更多信息,请参见$ controller(),但仅
$scope需要传递值。所有其他值将正常注入。
@mwarren ,Angular依赖注入自动解决了您的顾虑。您所需要做的就是注入$ scope,尽管如果需要可以覆盖其他注入的值。请看以下示例:
(function(angular) { var module = angular.module('stackoverflow.example',[]); module.controller('simpleController', function($scope, $document) { this.getOrigin = function() { return $document[0].location.origin; }; }); module.controller('complexController', function($scope, $controller) { angular.extend(this, $controller('simpleController', {$scope: $scope})); });})(angular);<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.js"></script><div ng-app="stackoverflow.example"> <div ng-controller="complexController as C"> <span><b>Origin from Controller:</b> {{C.getOrigin()}}</span> </div></div>虽然$ document在由’complexController’创建时未传递到’simpleController’中,但会为我们注入$ document。



