我是 Angular 的新手,所以如果我有任何錯誤,請原諒我。我正在嘗試在下拉列表中獲取創建的列表,當用戶選擇它時,它應該將資訊記錄到資料庫中。
這是我的程式碼: Component.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, }); }
我查找了從下拉清單中讀取值的 Angular 方法,並嘗試了不同的變數名稱,但到目前為止沒有任何效果。
我認為唯一可能錯誤的是您嘗試
retrievalReason: this.RR.get('reasons').value
但這是為了獲取表單控制項的表單。您只有一個表單控件,因此只需
retrievalReason:this.RR.value
就足夠了。