我正在尝试将服务的引用访问到我的静态方法中,如下所示:

export class myComponent {
  constructor(private backend: BackendService) { }

  public static myMethod() {
  myComponent.backend.getData()
    .subscribe(
      data => { console.log(data)   },
      error => { console.error(error); }
  );
 }
}

我正在获取Property backend doesn't exist on type 'typeof myComponent'
如何访问backend引用?

谢谢。

最佳答案

不知道为什么要这样做,可能看起来像是糟糕的体系结构,但是您可以通过执行以下操作来实现。

 export class myComponent {
  constructor(private backend: BackendService) {
     this.constructor.backendService = backend;
  }

  public static myMethod() {
   myComponent.backendService.getData()
     .subscribe(
       data => { console.log(data)   },
       error => { console.error(error); }
   );
  }
}

仅在组件初始化后调用静态方法时,此方法才有效。

关于typescript - 在Angular 5中将服务访问为静态方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47790383/

10-11 11:31