У меня есть компонент диалога, который отображается, когда я нажимаю кнопку "Изменить" рядом с элементом в таблице. На данный момент компонент диалога выглядит следующим образом:
<h1 mat-dialog-title>{{item.ID}}</h1>
<div mat-dialog-content>
<p>Edit item</p>
<mat-form-field appearance="outline" style="justify-content: center;">
<mat-label>ID</mat-label>
<input matInput [(ngModel)]="item.ID">
</mat-form-field>
<mat-form-field appearance="outline">
<mat-label>Name</mat-label>
<input matInput [(ngModel)]="item.Name">
</mat-form-field>
<mat-form-field appearance="outline">
<mat-label>Date</mat-label>
<input matInput [(ngModel)]="item.Date">
</mat-form-field>
</div>
<div mat-dialog-actions style="justify-content: center;">
<button mat-button (click)="onNoClick()">Cancel</button>
<button mat-button [mat-dialog-close]="item.ID" cdkFocusInitial>Save</button>
</div>
Это выглядит и работает нормально, и служит своей цели. Но теперь у меня есть несколько других таблиц с различными типами данных, и, хотя я могу создать отдельный диалог для каждой таблицы и добавить поля формы вручную для каждого типа, я хотел бы иметь более гибкое решение.
Как я могу создать диалоговое окно, в котором поля формы добавляются в зависимости от типа ссылочного элемента? Например: Если у меня есть объект типа "Фрукты" в одной таблице с такими свойствами, как "Имя", "Цвет", "Цена", и объект типа "Автомобиль" со свойствами, такими как "Имя", "Произведено", "Мощность", могу ли я использовать один и тот же компонент диалога и динамически создавать форму?