Ich habe eine angular2 Anwendung (RC6-Version), wo einige wichtige globale Parameter aus einer Konfigurationsdatei geladen werden, einen Dienst verwenden, die diese Datei beim Start sammelt:deaktivieren Anwendung Laden/Routing in Angular2
@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 { }
Wie gezeigt In diesem Snippet verwende ich, was ich eine ConfigurationRervice nennen, die durch einen HTTP-Aufruf eine Konfigurationsdatei liest und einige Parameter zurückgibt (als eine Verheißung). Wenn alles gut läuft, lädt die Anwendung perfekt und diese Config-Parameter sind in allen Sub-Modulen usw. zugänglich.
Die Frage ist, wie kann ich stoppen Anwendung laden der Untermodule für den Fall, dass diese Konfigurationsdatei nicht als lädt erwartet? (Bitte beachten Sie, dass die AppComponent im Wesentlichen nur ein Router-Outlet ist, der auf andere Routen umleitet, die von mehreren Submodulen definiert werden). Kann ich auf eine Fehlerseite deaktivieren oder umleiten, anstatt das von der angeforderten Route definierte Modul/Komponente zu laden?
In AppComponent überprüfen Parameter. Wenn sie wie erwartet sind, lassen Sie die App andere Route zur Fehlerseite laufen ... – micronyks
Ja, aber wo? Die AppComponent Vorlage ist nur ' router-outlet>'. Ich versuchte, es mit einem * ngIf zu kapseln, aber ich erhalte einen Fehler "Fehler: Kann primären Ausgang nicht finden, um ChildComponent zu laden" Meinen Sie, eine ngOnInit() Funktion hinzuzufügen und den Scheck darin durchzuführen? –
mpilliador