2016-05-15 9 views
3

Ich muss benutzerdefinierten Datumsauswahl implementieren.
Dazu habe ich date-picker.directive und select-date.component (Dialogfenster).Instantiate-Komponente aus einer Direktive

Ich anhänge Richtlinie durch Attribut in HTML und kann Ereignisse verarbeiten. Nach Klick Ereignis-Anweisung sollte das Dialogfenster aufrufen (es ist unsere Komponente).

<button class="btn" type="button" date-picker> 

Aber wie kann ich select-date.component aus einer Direktive instanziieren?
Wie füge ich eine neue Komponente in DOM ein?

Antwort

1

Wenn Sie die Art der Komponente kennen, können Sie es einfach in die Richtlinie injizieren

export class DatePickerDirective { 
    constructor(private selectDateComponent:SelectDateComponent) {} 
} 

Wenn die Richtlinie sollte in der Lage, jede Art von Komponente zuzugreifen, wo es angewendet wird, dann können Sie die Methode verwenden, erklärt in How to access the Component on a Angular2 Directive (siehe auch diese Ausgabe https://github.com/angular/angular/issues/8277)

+0

Günter Zöchbauer, Ihre Lösung hilft beim Zugriff auf existierende Komponenten. Ist es möglich, eine neue Instanz der Komponente zu erstellen und sie zu DOM hinzuzufügen? – rnofenko

+0

Siehe http://stackoverflow.com/questions/36325212/angular-2-dynamic-tabs-mit-user-click-chosen-components/36325468#36325468 für ein Beispiel –

+0

Günter Zöchbauer, danke für deine Hilfe, aber dein Beispiel zeigt, wie _component aus Komponente_ erstellt wird. Wenn ich eine Lösung für _component von directive_ finden möchte. – rnofenko

Verwandte Themen