Bootstrap Angular 2应用程序,需要异步初始化的提供程序

时间:2017-03-23 21:24:53

标签: angular bootstrapping

我想将我的Angular 2 app配置保存在一个单独的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的方法。或者也许在应用程序引导时启动它,但让任何消费者等到它完成加载。

1 个答案:

答案 0 :(得分:0)

高级别可能有效:

  1. 将当前应用包含在具有以下模板的ShellComponent

    <div *ngIf="ready">
        <app-component></app-component>
    </div>
    
  2. ShellComponent会在ConfigService中致电ngOnInit()。当ready返回配置时,在回调集trueConfigService

  3. 而不是引导AppComponent,而是引导ShellComponent