Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有需要异步初始化的提供程序的引导Angular 2应用程序_Angular_Bootstrapping - Fatal编程技术网

具有需要异步初始化的提供程序的引导Angular 2应用程序

具有需要异步初始化的提供程序的引导Angular 2应用程序,angular,bootstrapping,Angular,Bootstrapping,我想将Angular 2应用程序配置保存在一个单独的config.json文件中,该文件在应用程序启动时加载 我计划通过ConfigService提供配置数据。但它需要先从文件中获取数据,然后其他组件才能请求它 我的应用程序当前是这样引导的: import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { FormsModule } from

我想将Angular 2应用程序配置保存在一个单独的config.json文件中,该文件在应用程序启动时加载

我计划通过ConfigService提供配置数据。但它需要先从文件中获取数据,然后其他组件才能请求它

我的应用程序当前是这样引导的:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppComponent, routes } from './app';
...

@NgModule({
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    routes
  ],
  declarations: [
    AppComponent
  ],
  [
    ConfigService,
    ...
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

platformBrowserDynamic().bootstrapModule(AppModule)

因此,我正在寻找一种方法,如何在应用程序启动之前初始化ConfigService。或者在应用程序启动时初始化它,但让任何消费者等待,直到加载完成。

以下高级别可能会起作用:

  • 将当前应用程序包装在具有以下模板的
    ShellComponent

    <div *ngIf="ready">
        <app-component></app-component>
    </div>
    
    
    
  • ShellComponent
    将在
    ngOnInit()
    中调用
    ConfigService
    。在回调中,当
    ConfigService
    返回配置时,将
    ready
    设置为
    true


  • 如果您将逻辑放入服务的构造函数中,那么它将在应用程序引导或组件启动之前执行,而不是引导
    AppComponent
    ,而是引导
    ShellComponent