我似乎在尝试使用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解决之后?