Когда я пытаюсь загрузить таблицу материалов в веб-страницу с реактивной формой, я получаю две ошибки:
a) ОШИБКА TypeError: ctrl._updateTreeValidity не является функцией (я подозреваю, что основная ошибка)
b) busProf. html: 242 Ошибка: ошибка: невозможно найти элемент управления с путем: 'DefaultRates -> ConversionRate'
Форма отображает данные для всех элементов управления , включая значения по умолчанию. Эти две ошибки не позволяют редактировать столбец "Коэффициент конверсии". Буду признателен за любую помощь, так как я, кажется, застрял (через несколько часов, то я бы хотел администратора)
Вот соответствующий код:
InitbusinessProfile (businessProfile) : businessProfile): FormGroup {
// Код, который находится в отдельном классе
this.fg = new FormGroup({
Id: new FormControl(businessProfile.Id, Validators.required),
BusinessProfileId:new FormControl(businessProfile.BusinessProfileId, Validators.required),
DefaultRates: new FormArray([])
});
let defRates = this.fg.controls['DefaultRates'] as FormArray;
for (var i = 0; i < businessProfile.DefaultRates.length; i++)
{
var item = businessProfile.DefaultRates[i] as any;
defRates.controls.push(item as FormArray);
}
return this.fg;
}
// Main class
form: FormGroup;
dataSource: MatTableDataSource<any>;
get DefaultRates() : any {
return this.form.controls['DefaultRates'] as any ;
}
ngOnInit()
{
this.form = vm.ProfileCtrls.InitbusinessProfile(response);
this.dataSource = new MatTableDataSource(this.DefaultRates);
}
<form [formGroup]="form">
....
<ng-container formArrayName="DefaultRates">
<mat-table [dataSource]="DefaultRates.controls" class="mat-elevation-z8">
<ng-container matColumnDef="CurrencyCodeBu">
<mat-header-cell *matHeaderCellDef class="cellHdr">Currency</mat-header-cell>
<mat-cell *matCellDef="let DefaultRates" >{{DefaultRates.CurrencyCode}}</mat-cell>
</ng-container>
<ng-container matColumnDef="ConversionRate">
<mat-header-cell *matHeaderCellDef class="cellHdr">Exchange Rate</mat-header-cell>
<mat-cell *matCellDef="let DefaultRates" >
<mat-form-field>
<input matInput formControlName="ConversionRate" value={{DefaultRates.ConversionRate}}>
</mat-form-field>
</mat-cell>
</ng-container>
</mat-table>
</ng-container>