假设我有一个带有许多控制器的大型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) {...})
答案 0 :(得分:1)
您可能要做的是,创建一个具有所有必需依赖项的控制器,并将其作为基本控制器,其他控制器可以使用角度extend 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');
};
});
以上代码的有效解决方案可以在here中找到。