2017-04-18 4 views
0

Ich muss eine allgemeine Lösung erstellen, um ein Modal von jedem beliebigen Ort innerhalb der Anwendung durch die Übergabe einiger Parameter zu öffnen, einfach diese Parameter Größe (klein, groß, Vollbild), absetzbar (wahr oder falsch) und der wichtigste Parameter ist die Komponente, die ich in diesem Modal anzeigen muss. Meine Frage ist, wie kann ich eine vollständige Komponente zu einer Methode innerhalb des Dienstes übergeben.Pass Angular2 Komponente als Parameter

Antwort

0

Sie können einfach Komponentenklasse zu Ihrem Dienst übergeben:

service.openModal(component = AComponent, ...rest) {} 

Wenn Sie es als String übergeben wollen, können Sie erklären, welche Komponenten für sie namentlich in Ihrem Service und freuen verwendet werden. Etwas wie dieses:

service.dynamicComponents = [AComponent, BComponent]; 

service.openModal(params = { component: 'AComponent' }) { 
    const component = this.dynamicComponents 
         .find(o => o.constructor.name === params.component) 
}