如何在angular 2最终服务中的静态方法中注入或使用Http?

rev*_*thi 6 final http inject angular

我正在使用 Angular 2 最终版本。我在 Angular 2 中有一个验证器服务。我正在编写一个使用 HttpModule 的异步验证静态方法。那么在这种情况下,如何注入和使用Http,以便我可以调用后端。我尝试做出如下声明: static http:Http;

然后尝试使用像 ValidationService.http.get() 这样的静态方法,但这会引发错误,例如-get 未定义。

有人可以对此有所了解吗?

Gün*_*uer 5

@NgModule(...)
class AppModule {
  ngDoBootstrap(moduleRef) {
    let injector =  moduleRef.injector;
    // assign injector somewhere to a static field
  }
}
Run Code Online (Sandbox Code Playgroud)

那么你可以像这样使用它

someStaticMethod() {
  let validationService = someStatic.injector.get(ValidationService);
}
Run Code Online (Sandbox Code Playgroud)

不过,您应该尽量避免静态方法。他们反对 Angular2s 架构。