我正在从数据库中获取值以将其显示在物料表上。其中一个值应显示在下拉列表中,以便可以更改。
问题在于,除了应该在下拉列表中显示的所有值外,所有值都正确显示在mat-table cells
内,在下拉列表中,仅正确显示了返回的第一行的第一个值,而其他值被设置了等于第一个。
这是我的代码:
<ng-container matColumnDef="status">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Status</th>
<td mat-header *matCellDef="let row">
<mat-form-field>
<form [formGroup]="sitStatus">
<mat-select formControlName="sitStatus" placeholder="">
<mat-option [value]="row.unit_situation_legal_protection_status">{{row.unit_situation_legal_protection_status}}</mat-option>
<mat-option *ngIf="row.unit_situation_legal_protection_status!='Active'" value="Active">Active</mat-option>
<mat-option *ngIf="row.unit_situation_legal_protection_status!='Inactive'" value="Inactive">Inactive</mat-option>
</mat-select>
</form>
</mat-form-field>
</td>
</ng-container>
返回成功结果时,我正在函数内部创建组表单:
this.dataSource = new MatTableDataSource(Object.values(data['situation_info']));
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
this.showSpinner = false;
this.sitStatus = this.fb.group({
'sitStatus': new FormControl( data['situation_info'][0]['unit_situation_legal_protection_status'], [Validators.required])
})
data['situation_info'][0]['unit_situation_legal_protection_status']
是我要在下拉列表mat-select
中显示的字段。
结果如下:
蓝色显示的值应为Active
,而不是Inactive
。