我的angularjs控制器中有一组常用的提供程序。例如。 $ scope,$ rootScope,$ http和我的客户服务。我想将这些通用提供程序注入所有控制器,而不在控制器中定义它们
例如,
而不是,
function HomeCtrl($scope, $rootScope, $http){
.....
}
function MenuCtrl($scope, $rootScope, $http, MyService){
.....
}
这样做,
function HomeCtrl(){
...
// $scope, $rootScope, $http are available here
...
}
function MenuCtrl(MyService){
...
// $scope, $rootScope, $http are available here
...
}
因此,在此示例中,$ scope,$ rootScope,$ http会自动注入所有控制器。但我不知道该怎么做。有人知道吗?感谢。
答案 0 :(得分:1)
我不认为使用相同的依赖项喷涂所有控制器是一个好主意。它表明应用程序没有一个好的结构,你应该解决这个问题。
举个例子,有一些事情很突出。您无需依赖$scope
和$rootScope
,您可以使用$scope
$scope.$root
获取根范围
如果您在服务中包装逻辑并在控制器之间重用代码,那么我建议您的控制器不需要依赖$ http,而是将此代码移动到您所依赖的服务中。尝试并恰当地命名这些服务,以便您可以告诉他们的工作。例如,更喜欢AccountCreator
而不是像AccountsService
这样更通用的东西。事实上,从来没有命名xxxService
某个服务后缀是一个真正没有任何意义的方式。
就你的实际问题而言,不,我认为没有办法解决这个问题。我有一些关于你如何破解它的想法,但我认为潘多拉盒子应该被锁定。