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