Saya baru dalam Angular jadi harap maaf jika saya melakukan sebarang kesilapan. Saya cuba mendapatkan senarai yang dibuat dalam lungsur turun dan apabila pengguna memilihnya, ia harus log maklumat ke dalam pangkalan data.
Ini kod saya: Komponen.html
<mat-form-field appearance="fill"> <mat-label>Retrieval Reason</mat-label> <mat-select [formControl]="RR" required> <mat-option>--</mat-option> <mat-option *ngFor="let reason of reasons" [value]="reason"> {{reason.reason}} </mat-option> </mat-select> <mat-error *ngIf="RR.hasError('required')">Please choose a reason</mat-error> </mat-form-field> <button mat-raised-button (click)="done()" color="primary" [disabled]="selection.selected.length === 0 || RR.hasError('required')" > Retrieve </button>
Component.ts
retrievalReason: Reasons; RR = new FormControl('', Validators.required); reasons: Reasons[] = [ {reason: 'Cycle Count'}, {reason: 'Purge Request'}, {reason: 'Picking'},]; done() { this.dialogRef.close({ carrier: this.carrier, destination: this.selection.selected[0].dstId, retrievalReason: this.RR.get('reasons').value, }); }
Saya mencari kaedah Angular untuk membaca nilai daripada menu lungsur dan mencuba nama pembolehubah yang berbeza tetapi tiada apa yang berjaya setakat ini.
Saya rasa satu-satunya perkara yang mungkin salah ialah jika anda mencuba
retrievalReason: this.RR.get('reasons').value
tetapi itu untuk mendapatkan kawalan borang bagi borang tersebut.Anda hanya mempunyai satu kawalan bentuk, jadi cukup
retrievalReason:this.RR.value
sahaja.