2015-05-16 137 views
1

我在我的控制器中使用了依賴注入,如下所示。如何在angularjs中限制依賴注入

.controller('deals_list', function ($scope, global, config, services, dealService, pagination) { 

現在應用程序已經成長。依賴性也在增長。我想限制這些注射。那麼是否有辦法限制全球注射或某些東西?

我應該遵循什麼樣的程序?

+1

您是否使用該控制器中的所有服務?如果是這樣,那麼他們需要注入。我發現每個控制器都不可能使用'global'服務,'config'服務以及任何'services'服務...... – Claies

+0

我有幾個CRUD控制器。所以我必須在每個控制器中注入所有服務。 – Namal

+0

也許你可以將它們組合 –

回答

2
var myApp= angular.module('myApp', []); 

myApp.run(function ($rootScope, $location, $http, $timeout, YourService) { 
    $rootScope.MyService = YourService; 
} 

用它到控制器:

myApp.controller('YouCtrl', ['$scope', function ($scope) { 
    // scope inherits from root scope 
    $scope.MyService.doSomething(); 
}]); 
0

什麼,我相信你可以做的是創建一個包含所有要使用該服務的服務。全球服務就像是您真正服務的門面。

然後,該選項將在包含所有依賴關係的全局服務上創建。或多個門面服務,這組這些服務

app.service("Configurations",function(global,config) { 
    this.global=global; 
    this.standard=config; 
}); 

app.service("AppServices",function(services, dealService, pagination) { 
    this.services=services; 
    // other assigments 
}); 

現在,你可以注入ConfigurationsAppServices

這至少給一些洞察你的控制器是依賴於。