我正在构建一个使用角度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();
}

另一件事是,您需要在服务类上有@Injectabledecorator,以使它作为依赖项在其他组件构造函数中injectable

10-04 19:27