Poszukuję sposobu na utworzenie instancji składnika w Angular2 z kodu innego komponentu. W przeciwieństwie do wielu osób, które zadały podobne pytanie, nie interesuje mnie dynamiczne kompilowanie nowego komponentu, tylko tworzenie i wstawianie takiego, który już istnieje w mojej aplikacji.Angular 2.0 final: jak utworzyć instancję komponentu z kodu
Na przykład:
powiedzieć, że mają dwa składniki:
desce rozdzielczej item.component.ts
import { Component } from "@angular/core";
@Component({
selector: "dashboard-item",
template: "Some dashboard item with functionality"
})
export class DashboardItemComponent {
constructor() {}
onInit() {}
}
dashboard.component.ts
import { Component } from "@angular/core";
@Component({
selector: "dashboard",
template: "<h1>Dashboard!</h1><div #placeholder></div>"
})
export class DashboardComponent {
constructor() {}
onInit() {}
}
Czego szukam, to sposób na utworzenie komponentu DashboardItemComponent w elemencie onInit składnika DashboardComponent i dodanie go do elementu div #placeholder.
Dwie rzeczy do uwaga:
- będę potrzebował, aby móc korzystać z wejść/wyjść komponentu dziecięcej
- mam explictly nie mówi o kompilacji nowy komponent w locie jak te dwie kwestie opisać: How can I use/create dynamic template to compile dynamic Component with Angular 2.0? i Equivalent of $compile in Angular 2
Tych dwóch wcześniejszych emisji zadać podobne pytanie, ale ich odpowiedzi są albo raczej nijaka lub odnoszą się do wcześniejszej (beta) wersji Angular2 i wydają się nie działać.
- How to instantiate and render Angular2 components?
- Is it possible to manually instantiate component in angular 2
Można przyjrzeć się pierwsza opcja z http://stackoverflow.com/questions/39678963/load-existing-components-dynamically-angular-2-final-release/39680765#39680765 – yurzui