我仍然很有角度,并且一直在构建一个简单的CRM应用程序。对于单个资源(restful API资源),我在angular应用程序中定义了3-4个路由和控制器。现在,有一组服务和模块,我不得不重复注入每个控制器。我知道每个控制器都有它自己的范围实例和工厂/服务的共享实例,但有没有办法集中定义多个控制器的依赖关系?
在下面的示例中,$modal
,growl
,configuration
,$scope
被注入所有3个控制器,我只想定义一次。
列出控制器
myApp.controller('VenueListCtrl', ['$scope', '$http', 'configuration', '$modal', 'growl',
function ($scope, $http, configuration, $modal, growl) {
}
]);
创建/新控制器
myApp.controller('VenueCreateCtrl', ['$scope', '$http', '$location', 'configuration',
function ($scope, $http, $location, configuration) {
}
]);
详情控制器
myApp.controller('VenueDetailCtrl', ['$scope', '$routeParams', '$http', '$modal', 'configuration',
function ($scope, $routeParams, $http, $modal, configuration) {
}
]);
答案 0 :(得分:0)
您可以做的最好是:使用控制器的非-anonimus函数声明:
var depsToInject = ['$scope', 'growl', 'configuration', '$modal'];
myApp.controller('Ctrl1' , Ctrl1);
Ctrl1.$inject = depsToInject ;
function Ctrl1($scope, growl, configuration, $modal) {
....
}
myApp.controller('Ctrl2' , Ctrl2);
Ctrl2.$inject = depsToInject ;
function Ctrl1($scope, growl, configuration, $modal) {
....
}
等。但这并没有完全统一宣言,我不认为有更好的方法。但是你可以从另一边尝试并用另一个依赖包装你的依赖,但我也不喜欢这样。