AngularJS:将依赖注入每个控制器



假设我有一个巨大的Web应用程序(使用AngularJS(,有很多控制器。有没有办法在每个控制器中注入$log服务?为了更清楚,我想写这样的东西:

.config(function($log) {
allMyControllers.inject($log);
})

而不是

.controller('Controller1', function($log) {...})
.controller('Controller2', function($log) {...})
.controller('Controller3', function($log) {...})
.controller('Controller4', function($log) {...})

你可以做的是,创建一个具有所有需要的依赖项的控制器,并将其作为基本控制器,其他控制器可以使用角度扩展API扩展它。

我遇到的一些清晰的示例代码:

.controller('baseController', function(someService) {
this.someService = someService;
})
.controller('extendedController', function($scope, $controller) {
angular.extend(this, $controller('baseController', { $scope: $scope }));
this.alert = this.someService.alert;
})
.service('someService', function() {
this.alert = function() {
window.alert('alert some service');
};
});

上述代码的工作解决方案可以在这里找到。

最新更新