私は angular2 アプリケーション (RC6 バージョン) を持っています。いくつかの重要なグローバル パラメーターは、起動時にこのファイルを収集するサービスを使用して構成ファイルから読み込まれます。
@NgModule({
imports: [ BrowserModule, FormsModule, HttpModule, AppRoutes, SomeCustomModule ],
declarations: [ AppComponent ]
providers: [
ConfigurationService,
{
provide: APP_INITIALIZER,
useFactory: (config: ConfigurationService) => () => {
return config.load().then(configParams=> { return true;});
},
deps: [ConfigurationService, HttpModule],
multi: true
}
],
bootstrap:[ AppComponent ]
})
export class AppModule { }
このスニペットに示すように、私はConfigurationServiceと呼んでいるものを使用します。これは、http 呼び出しを介して構成ファイルを読み取り、いくつかのパラメーターを (Promise として) 返します。すべてがうまくいけば、アプリケーションは完全にロードされ、これらの構成パラメーターはサブモジュールなど全体でアクセス可能になります。
問題は、この構成ファイルが期待どおりにロードされない場合に、アプリケーションがサブモジュールをロードするのをどのように停止できるかということです。(AppComponent は本質的に単なるルーターアウトレットであり、複数のサブモジュールによって定義された他のルートにリダイレクトすることに注意してください)。要求されたルートによって定義されたモジュール/コンポーネントをロードする代わりに、「無効化」またはエラー ページにリダイレクトできますか?