有没有办法在AngularJS中声明一个控制器并且只指定一次依赖项?

时间:2013-09-05 21:48:02

标签: angularjs

为了让依赖注入在缩小后继续工作,我正在使用这种风格来声明一个控制器:

myModule.controller('myController', ['$rootScope', 'Service', 
  function($rootScope, Service) {
    $scope.foo = 'bar';
}]);

假设您要添加其他服务。您必须将它添加到控制器功能之前的数组中的2个位置,并作为控制器功能本身的参数。我的问题是,有没有办法让这个干燥?你能声明一个依赖数组并使用它来构建外部数组和内部参数,就像这样吗?:

var dependencies = ['$rootScope', 'Service'];

var myProtoController = function() {
  $scope.foo = 'bar';
};

var myController = dependencies.push(myProtoController.bind.apply(this, [this].concat(dependencies)));

myModule.controller('myController', myController);

2 个答案:

答案 0 :(得分:3)

您可以在工具链中使用Ngmin吗?它会将您的角度函数转换为您当前使用的缩小样式。

它与grunt和rails集成,因此在当前的管道中使用它应该很简单。

答案 1 :(得分:1)

使用concat

var deps = ['$rootScope', 'Service'];

myModule.controller('myCtrl', deps.concat(function ($scope, $rs, S) {
  $scope.foo = 'bar';
}));