Angular 如何在Main.ts文件中使用HttpClient

Angular 如何在Main.ts文件中使用HttpClient,angular,angular8,Angular,Angular8,在我的应用程序的设置方式中,my main.ts中有一个函数用于获取后端URL。然后提供给应用程序的其余部分(用作所有其他api调用的基本url) 问题是,我试图设置一个自定义后端配置,以避免重建,并需要使用获取JSON文件信息的提供程序。在main.ts中,我知道DI不可用,因此尝试手动创建每个依赖项的实例,但最终遇到了困难,因为HttpHandler是一个抽象类 my main.ts中的函数当前看起来像这样 return new BackendService(new AppConfigSer

在我的应用程序的设置方式中,my main.ts中有一个函数用于获取后端URL。然后提供给应用程序的其余部分(用作所有其他api调用的基本url) 问题是,我试图设置一个自定义后端配置,以避免重建,并需要使用获取JSON文件信息的提供程序。在main.ts中,我知道DI不可用,因此尝试手动创建每个依赖项的实例,但最终遇到了困难,因为HttpHandler是一个抽象类

my main.ts中的函数当前看起来像这样

return new BackendService(new AppConfigService(new HttpClient(new HttpHandler()))).getCurrentBackend().backendUrl;

还有别的解决办法吗?是否有人能够成功地将其angular项目配置为将环境变量引用到main.ts文件,从而避免重建?

您可能要查找的是APP_初始值设定项DI令牌

简而言之,您将创建一个provider类,将对后端的调用封装在其中,这个类将作为DI接收HttpClient(以及您需要的任何其他内容)。 然后,您将此类提供给您的应用程序模块,并确保导入其中的所有依赖项


下面是一个很好的小示例或应用程序初始化器:您可以按如下方式获取API:

fetch('config.json').then(res => res.json()).then((resp) =>{
   platformBrowserDynamic().bootstrapModule(AppModule);
})