У меня есть компонент динамической таблицы (DataTableComponent), который принимает различные @inputs и содержит @output:
<app-data-table (buttonClickedEvent)="buttonClickedEvent($event)" [data]="testTableSetup.data" [mutatorArray]="testTableSetup.mutatorArray" [hiddenProps]="testTableSetup.hiddenProps" [showSelectColumn]="testTableSetup.showSelectColumn" [showEditColumn]="testTableSetup.showEditColumn"
[actionButtons]="testTableSetup.actionButtons">
</app-data-table>
У меня также есть динамический компонент диалога, который может принимать необязательный параметр, чтобы я мог передавать другие компоненты для отображения в:
openDialog(): void {
const dialogConfig = new MatDialogConfig();
let dialogConfigModel: DialogConfigModel = {
dynamicFormModel: [],
additionalComp: DataTableComponent,
click_ButtonText: "Save",
close_ButtonText: "Close",
dialogTitle: "SOME TITLE"
};
dialogConfig.data = dialogConfigModel;
const dialogRef = this._dialog.open(DynamicDialogComponent, dialogConfig);
dialogRef
.afterClosed()
.pipe(
take(1),
takeUntil(this._destroyed$)
)
.subscribe(results => {
// Stuff Here.
});
}
Компонент отображается в моем диалоговом окне, как и ожидалось, но он явно не содержит данных.
Как я могу получить доступ к своим DataTableComponent @inputs и @output из этого метода openDialog ()? Мне нужно иметь возможность установить данные @inputs и получить при запуске метода @output. Это не возможно? Или есть лучший способ сделать это? Я проверил инжекторы, но не смог заставить работать реализацию.