我正在构建一个使用角度2 /类型脚本的应用程序,并尝试访问作为依赖项注入的服务。在角1。x中,我将通过控制器函数访问这个服务,并且所有子函数都能够访问相同的依赖关系。在这里,我通过组件的构造函数注入它,如下所示:
constructor( @Inject(JRummy) rummyGame: JRummy) {
this.currentGame = new Game();
rummyGame.startGame(this.currentGame);
}
其中rummygame是我试图注入的服务。这工作正常。但是,在构造函数中访问此服务之后,如何在其他函数中访问它?例如,组件中有以下click函数,我想在其中调用rummygame服务中的方法:
simulateComputer():void {
rummyGame.computerPlaySolo();
}
如果rummygame服务刚刚被注入到构造函数中,那么它是如何被注入到这个click函数中的呢?是否需要在组件上创建一个属性,以便在构造函数访问该服务的实例后存储该实例?
最佳答案
更短的方法是将变量声明为private
,这样它就可以直接在类的上下文(this
)中使用。
constructor( @Inject(JRummy) private rummyGame: JRummy) {
//code here
}
//do access service object by having this.rummyGame
simulateComputer():void {
this.rummyGame.computerPlaySolo();
}
另一件事是,您需要在服务类上有
@Injectable
decorator,以使它作为依赖项在其他组件构造函数中injectable
。