Проблема с массивом форм: не удается найти элемент управления с путем: 'rows -> 0' - PullRequest
0 голосов
/ 06 мая 2020

Я хотел бы преобразовать в 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);
              }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...