如何手动在main.ts中实例化Http服务

时间:2017-10-11 06:38:48

标签: angular http

我需要手动在main.ts中实例化Http。我使用HTTP_PROVIDERS找到了一些答案,如下所示,但看起来不推荐使用HTTP_PROVIDERS。知道我该怎么办?

const injector = ReflectiveInjector.resolveAndCreate([HTTP_PROVIDERS]);
const http = injector.get(Http);

我将使用此http对象来调用服务器并在响应中引导appmodule。如下所示。

http.get("app/config/config.json").map(res => res.json()).subscribe(resp=>{
      platformBrowserDynamic().bootstrapModule(AppModule);

})

2 个答案:

答案 0 :(得分:1)

您可以使用Fetch API:

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

答案 1 :(得分:0)

我需要调用控制器从配置文件中获取环境信息,而不是使用environment.ts,这就是我做到的方式,我认为它可以为您提供帮助

Main.ts

fetch("/SomeControllerEndpoint").then(function (response) { 
response.json().then(function (response) {    
if (response.status === "success" && response.result.toLowerCase().indexOf('prod') !== -1) {
  enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule)
  .then(() => InitializeApp())
  .catch(err => console.error(err));
});

因此,这种方式是在引导应用程序之前应用自定义代码。