提供动态网址作为服务的构造函数参数

时间:2019-01-30 16:14:03

标签: angular

我似乎在尝试使用api响应返回的url构建服务时遇到问题。 baseUri是动态依赖于环境的-每个分支可以在部署过程中创建一个唯一的url。

我有一项服务,要求在构造函数中设置baseUri(主机),如下所示:

class MapsService {
  constructor(
    private http: HttpClient,
    private string: host
  ) { }

  // ...
}

因此,当我将此模块导入另一个模块时,我已经构建了一个带有静态forRoot方法的模块来接受主机参数:

@NgModule({
  imports: [
    HttpClientModule
  ],
  providers: [
    MapsService
  ]
})
export class MapsModule {
  public static forRoot(host: string): ModuleWithProviders {
    return {
      ngModule: MapsModule,
      providers: [
        MapsModule
      ]
    };
  }
}

当我导入该模块时,我无权访问baseUri。 我已经使用APP_INITIALIZER在呈现应用程序之前加载设置,但是似乎所有模块都是同时创建的。 如何将导入MapsModule的模块的创建推迟到APP_INITIALIZER解决之后?

0 个答案:

没有答案