没有内联数组依赖注入的代码如下所示
angular
.module('app')
.controller('TripListController',
(TripListService, $scope, uiGmapGoogleMapApi) ->
return
)
.controller('UserListController',
(UserListService, $scope, uiGmapGoogleMapApi) ->
return
)
我需要注入不同的TripListService
(TripListServiceFake
,TripListServiceDev
或TripListServiceDist
),但保留其他服务,例如$scope
和{{1}不变。
我试着像这样重写它:
uiGmapGoogleMapApi
但我发现这不起作用,因为angularJS不支持部分内联数组DI。因此,useConfig = {
fake:
TripListService: 'TripListServiceFake'
UserListService: 'UserListServiceFake'
dist:
TripListService: 'TripListServiceDist'
UserListService: 'UserListServiceDist'
}
angular
.module('app')
.controller('TripListController',[useConfig.fake.TripListService,
(TripListService, $scope, uiGmapGoogleMapApi) ->
return
])
.controller('UserListController',[useConfig.fake.UserListService,
(UserListService, $scope, uiGmapGoogleMapApi) ->
return
])
和$scope
也需要DI,但我不想为每个常量服务编写内联数组DI。
此外,我发现这仍然看起来很笨拙,有没有更好的方法来重构像这样的代码?
答案 0 :(得分:0)
如何手动注入这样的东西?
angular
.module('app')
.controller((uiGmapGoogleMapApi, $scope, $injector) ->
return $injector.invoke([useConfig.fake.TripListService,
(TripListService) ->
return
]))
当然return
- s可以隐含。