Я хотел бы преобразовать в mat-table значения в одном входах, чтобы пользователь мог редактировать те, которые используются.
К сожалению, это еще не работает, К сожалению, это еще не работает, Я получаю сообщение об ошибке ERROR Error: Cannot find control with path: 'rows -> 0'
Как решить проблему?
Мой код:
// HTML
<td mat-cell class="matContentDefaultBg02" id="matContentDefaultFont02" *matCellDef="let row; let i = index;" [class.disabledRange]="column.disabledRange">
<div class="form-group" formArrayName="rows" *ngIf="column.attribute === 'note'; else otherColumns">
<mat-form-field [formGroupName]="i">
<label>
<input matInput formControlName="note">
</label>
</mat-form-field>
</div>
<ng-template #otherColumns>
<span class="mobile-label">{{column.mobile}}</span>
{{ column.object !== null ? row[column.object][column.attribute] : row[column.attribute] }}
</ng-template>
</td>
// TS
balanceListForm: FormGroup;
// BalanceList form
this.balanceListForm = this.formBuilder.group( {
note: [null],
kag: [null, Validators.pattern('[0-9]*\\/*(\\+49)*[ ]*(\\([0-9]+\\))*([ ]*(-|–)*[ ]*[0-9]+)*')]
});
this.balanceListForm = this.formBuilder.group({
rows: this.formBuilder.array([])
});
// Iteration
for (const attr of this.columns) {
const columnData = rows.filter((d) => {
return d[attr] !== undefined && d[attr] !== null;
}).map((d) => {
return d[attr];
});
if (attr === 'note') {
const noteFormArray = this.balanceListForm.get('rows') as FormArray;
// build form array values for note text fields
for (const colDataEntry of columnData) {
const rowGroup = this.formBuilder.group({
note: colDataEntry
});
noteFormArray.push(rowGroup);
rowGroup.valueChanges.subscribe((rowData) => {
console.log('Row data changed:', rowData);
});
}
}
this.dataAttributesColumnFilter[attr] = _.uniq(columnData);
}