Я нашел несколько соответствующих ответов (<ng-content>
, createCustomElement
, componentFactoryResolver
), но я немного запутался в том, каково решение моей проблемы.
Цель : Я хотел бы повторно использовать существующий компонент, который содержит много логик c во всплывающем окне.
Вариант использования : componentA
- это тот, который я хочу повторно использовать в качестве черного ящика. Я уже использую этот компонент, перейдя к нему (он имеет свой собственный маршрут). Я также хотел бы использовать его внутри componentC
со всеми его функциональными возможностями без изменения текущего маршрута, в котором находится пользователь. Я думал о создании оболочки componentB
в качестве всплывающего окна, включающего componentA
.
компонент C .template. html
<my-pivot #pivot
*ngIf="flexMonsterKey"
[licenseKey]="flexMonsterKey"
[toolbar]="true"
[width]="'100%'"
[height]="500"
(beforetoolbarcreated)="customizeToolbar($event, BI)"
(celldoubleclick)="doubleClickPivotCell($event)">
</my-pivot>
компонент C .component.ts
public doubleClickPivotCell(cell: any) {
if (cell && cell.isDrillThrough) {
if (cell.measure && cell.measure.uniqueName === "ID") {
//open Document in a popup - componentA
}
}
}
componentB.template. html
<kendo-dialog title="myDocument">
<componentA></componentA>
</kendo-dialog>
Итак, какой код я должен написать в моем файле componentB.component.ts , так как он будет просто оберткой без каких-либо актуальная функциональность и как мне открыть componentA
из componentC
?
Заранее спасибо.