Tip özelliklerine göre açısal malzeme formu

0

Soru

Tablodaki bir öğenin yanındaki 'Düzenle' düğmesini tıkladığımda gösteren bir iletişim kutusu bileşenim var. İletişim kutusu bileşeni şu an için şuna benziyor:

    <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>

Bu iyi görünüyor ve çalışıyor ve amacına hizmet ediyor. Ancak şimdi farklı veri türlerine sahip başka tablolarım var ve her tablo için ayrı bir iletişim kutusu oluşturabilir ve her tür için form alanlarını manuel olarak ekleyebilirken, daha esnek bir çözüme sahip olmak istiyorum.

Başvuru öğesinin türüne göre form alanlarının eklendiği bir iletişim kutusunu nasıl oluşturabilirim? Örneğin: Bir tabloda 'Ad', 'Renk', 'Fiyat' gibi özelliklere sahip 'Meyve' türünde bir nesnem ve 'Ad', 'Üretilmiş', 'Beygir Gücü' gibi özelliklere sahip 'Araba' türünde bir nesnem varsa, aynı iletişim bileşenini kullanabilir ve formu dinamik olarak oluşturabilir miyim?

angular angular-material html typescript
2021-11-23 18:33:47
1

En iyi cevabı

0

Elbette tek bir evrensel dinamik form oluşturmak mümkündür, ancak çok zorlaşacaktır. Yalnızca bir nesne türü için mantığa ihtiyaç duyulur duyulmaz (örneğin, "b" alanındaki belirli bir değer seçilirse "a" alanını devre dışı bırakmak için).

2021-11-23 19:49:26

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................