следите за изменениями для formControlNames и узнайте, какая строка изменений в formGroup для l oop - Реактивная форма - PullRequest
1 голос
/ 16 апреля 2020

хотел бы следить за изменениями для formControlNames в formGroup для l oop, но как узнать, какой индекс для l oop внесены изменения. Например, если я хочу наблюдать за изменениями для formcontrolname для 'ruleType', valueChanges не предоставляет информацию о том, какая конкретная строка c изменений была инициирована.

Я попытался подписаться на изменения formGroup.value (строка 52-58 app.component.ts на stackblitz), но это не работает. Я должен прокомментировать это и использовать (строка 46-49 app.component.ts в stackblitz) для l oop до l oop через formArray, но он, похоже, не в состоянии обнаружить изменения в formControlName либо , Если у вас есть идеи, буду очень признателен.

Хотелось бы изменить указанное c имя группы форм для этой конкретной строки (указать c индекс formArray).

Моя кодовая база находится по адресу: https://stackblitz.com/edit/angular-eazn5i?file=src%2Fapp%2Fapp.component.html

1 Ответ

1 голос
/ 16 апреля 2020

Поскольку в вашем StackBlitz есть ошибка консоли, я создал более упрощенную версию, чтобы удовлетворить ваши потребности StackBlitz .

Я использовал замыкания, чтобы иметь доступ к текущий элемент управления формы, который имеет событие изменения значения:

for (let formGroup of this.myFormGroups) {
  formGroup.get("firstName").valueChanges.subscribe(control => {
    console.log(formGroup);        
  });
}

теперь у вас есть доступ к элементам управления элемента (другим контроллерам в той же строке), перейдя к formGroup.controls.

...