Angularjs:为DI而不是个人服务制作服务字典服务?

时间:2014-11-21 02:47:06

标签: angularjs angularjs-service

即使使用ng-annotate,我也厌倦了声明/更新依赖项数组和依赖注入参数。 特别是在我的控制器/指令上。

我可以创建一个引用我所有服务的超级服务而不会导致重大问题吗? 即使只用于控制器和指令?

正常

ExportTransactionDirectiveDependencies = [
    "ApiBasicServiceModule"
    "CSVMakerServiceModule"
    "NgTableHelperServiceModule"
    "UtilServiceModule"
    "ExportTransactionsServiceModule"
]

ExportTransactionController = ($scope, $routeParams, ApiBasicService, UtilService, ExportTransactionsService)->

    # PRIVATE
    _bapi = ApiBasicService
    _u = UtilService
    _nh = NgTableHelperService
    _x = ExportTransactionsService
    _websiteId = $routeParams.website_id
    _meta = {}

    ...

angular
    .module 'ExportTransactionDirectiveModule', ExportTransactionDirectiveDependencies
    .directive 'exporttransaction', ExportTransactionDirective

ExportTransactionController = ($scope, $routeParams, RefService)->

    # PRIVATE
    _bapi = ServiceRefService.ApiBasicService
    _u = ServiceRefService.UtilService
    _nh = ServiceRefService.NgTableHelperService
    _x = ServiceRefService.ExportTransactionsService
    _websiteId = $routeParams.website_id

    ...

angular
    .module 'ExportTransactionDirectiveModule', ['RefServiceModule']
    .directive 'exporttransaction', ExportTransactionDirective

这意味着更少维护重复的语义/句法含义,以及更短的代码。我并不觉得它失去了它的表现力,因为我拥有“#PRIVATE'节

1 个答案:

答案 0 :(得分:1)

没有理由你没有理由。它基本上是一种具有漂亮语法的注入服务。

在我看来 - 不要这样做......

您将与Angular的意图作斗争,并且它有一个不错的错误记录系统,可以帮助您更好地进行调试和编码。毫无疑问,如果您使用不同模块的服务,它有时会让您失望。

我认为你正在为一个非常微不足道的问题设计一个解决方案 - 给未来的开发人员带来挫败感和胡须。

你的代码。