2016-12-13 5 views
4

Ist es möglich, App-Komponenten dynamisch zu starten, abhängig davon, ob das Element vorhanden ist.Angular 2 Dynamisch Bootstrap-App-Komponenten

Wäre so etwas wie ...

export class AppModule { 

constructor() { 

} 

ngDoBootstrap(appRef: ApplicationRef) { 
    for(let component of components) { 
     if(document.querySelector(component.selector)){ 
      appRef.bootstrap(component); 
     } 
    } 
} 

} 

Antwort

0

Nein möchten, müssen Sie sich überprüfen, ob das Element im DOM verfügbar ist, und rufen Sie dann platformBrowserDynamic().bootstrapModule(AppModule); oder appRef.bootstrap(component); oder sonst nennen es überspringen.

Siehe https://github.com/angular/angular/issues/11730#issuecomment-252677321

+0

kann auch irgendwie so nicht die importierten Komponenten schauen und überprüfen gegen dort Wähler in einer Schleife. Der Grund, warum ich diese Frage stelle, könnte darin bestehen, dass es über 50 Komponenten geben könnte, was natürlich meine App-Modul-Datei unordentlich erscheinen lassen würde und es auch schwieriger machen würde, vorwärts zu laufen. –

+1

Nicht sicher, was du meinst. Sie sind möglicherweise Bootstrapping über 50 Komponenten? –

+1

@ Johnwilliams Sie können einfach das gleiche Array verwenden, das Sie in Ihrem '@ NgModule'' Eintrag deklarieren werden. Komponenten: [Komponenten] ' – yurzui

Verwandte Themen