Angular 2.0 final: So instanziieren Sie eine Komponente aus dem Code

8

Ich suche nach einer Möglichkeit, eine Komponente in Angular2 aus dem Code einer anderen Komponente zu erzeugen. Im Gegensatz zu den vielen Leuten, die eine ähnliche Frage gestellt haben, bin ich nicht so sehr daran interessiert, eine neue Komponente dynamisch zu kompilieren, sondern nur eine zu instanziieren und einzufügen, die bereits in meiner Anwendung existiert.

Zum Beispiel:

Sagen wir, ich habe zwei Komponenten:

dashboard-item.component.ts

%Vor%

dashboard.component.ts

%Vor%

Was ich suche, ist eine Möglichkeit, eine DashboardItemComponent im onInit der DashboardComponent zu erstellen und sie dem #placeholder div hinzuzufügen.

Zwei Dinge zu beachten:

Diese beiden früheren Ausgaben stellen eine ähnliche Frage, aber ihre Antworten sind entweder eher glanzlos oder beziehen sich auf frühere (Beta) Versionen von Angular2 und scheinen nicht mehr zu funktionieren.

Robba 25.09.2016, 09:02
quelle

3 Antworten

11

Hier ist eine funktionierende Demo: Ссылка

%Vor%     
mxii 25.09.2016, 09:36
quelle
1

Sie können Ihre untergeordnete Komponente in die übergeordnete Komponente einfügen.

%Vor%

Die untergeordnete Komponente macht eine EventEmitter-Eigenschaft verfügbar, mit der Ereignisse ausgelöst werden, wenn etwas passiert. Das übergeordnete Element bindet an diese Ereigniseigenschaft und reagiert auf diese Ereignisse. Ссылка

    
Manish 25.09.2016 09:21
quelle
0

Es scheint eine (neue?) API-Funktion für das zu geben, was in der Antwort von mxii beschrieben ist. Der ViewContainerRef hat die Methode createComponent . Es instanziiert die Komponente und fügt sie der Ansicht hinzu.

%Vor%     
PhillipM 08.01.2017 07:42
quelle

Tags und Links