Я получаю значения из базы данных, чтобы отобразить их в таблице материалов.Одно из значений должно отображаться в раскрывающемся списке, чтобы его можно было изменить.
Проблема заключается в том, что все значения отображаются в пределах 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
.