将依赖项注入AngularJS控制器,是否可以更简单?

将依赖项注入AngularJS控制器,是否可以更简单?,angularjs,typescript,Angularjs,Typescript,在我的app.ts中,我现在有以下代码: .controller('aboutHelper', ['$scope', 'sharedService', function ($scope, sharedService) { var aboutContr = new Controllers.AboutController($scope, sharedService); }]) Controllers.AboutController是我的类,它包含我的控制器的实际逻辑。这样,我必须将每个依赖

在我的app.ts中,我现在有以下代码:

.controller('aboutHelper', ['$scope', 'sharedService', function ($scope, sharedService) {
    var aboutContr = new Controllers.AboutController($scope, sharedService);
}])
Controllers.AboutController是我的类,它包含我的控制器的实际逻辑。这样,我必须将每个依赖项键入三次。这看起来不太好有更好的做事方法吗?


感谢您在关于控制器的
中定义静态属性
$inject
()

控制器将如下所示:

module Controllers {

    export class AboutController {

        static $inject = ["$scope", "sharedService"];   

        constructor($scope: IAboutScope, sharedService: ISharedService) {

        }        
    }
}
然后该控制器将注册为angular,如下所示:

app.controller('aboutCtrl', Controllers.AboutController)

在关于控制器的
中,可以定义静态属性
$inject
()

控制器将如下所示:

module Controllers {

    export class AboutController {

        static $inject = ["$scope", "sharedService"];   

        constructor($scope: IAboutScope, sharedService: ISharedService) {

        }        
    }
}
然后该控制器将注册为angular,如下所示:

app.controller('aboutCtrl', Controllers.AboutController)

如果您担心参数列表的增长,那么您可以使用$inject.get()

如果您担心参数列表的增长,那么您可以使用$inject.get()

您需要将该逻辑提取到服务中,并在需要的地方注入该逻辑,与在另一个控制器中实例化一个控制器相反Helppful:您需要将该逻辑提取到一个服务中,并在需要的地方注入该逻辑,而不是在另一个控制器中实例化一个控制器Helppful:看起来它确实起作用了!非常感谢你!我还有一个类似的问题。这就是我创建服务的方式:.service('sharedService',function(){This.fbServices=new Services.FbService();})如何更好地编写这部分内容?您只需编写:app.service('sharedService',Services.FbService);如果您添加了任何依赖项,您可以使用与静态$Injection完全相同的设置。看起来它确实有效!非常感谢你!我还有一个类似的问题。这就是我创建服务的方式:.service('sharedService',function(){This.fbServices=new Services.FbService();})如何更好地编写这部分内容?您只需编写:app.service('sharedService',Services.FbService);如果添加任何依赖项,则可以使用与静态$inject完全相同的设置