监视formControlNames的更改以及如何知道formGroup for循环中的更改的哪一行-响应式表单

问题描述 投票:0回答:1

希望在formGroup for循环中监视formControlNames的更改,但是我如何知道所做更改的for循环的哪个索引。例如,如果我要监视“ ruleType”的formcontrolname的更改,则valueChanges不会提供有关已触发更改的哪一行的信息。

我尝试了订阅formGroup.value的更改(stackblitz处app.component.ts的第52-58行),但是它不起作用。我必须对其进行注释,并使用(stackblitz处app.component.ts的第46-49行)进行循环以遍历formArray,但它似乎也无法检测到formControlName中的更改。如果您有任何想法,将不胜感激。

想要修改该特定行(formArray的特定索引)的特定formgroupname。

我的代码库位于:https://stackblitz.com/edit/angular-eazn5i?file=src%2Fapp%2Fapp.component.html

angular7 angular-reactive-forms form-control formgroups ngonchanges
1个回答
0
投票

因为您的StackBlitz出现控制台错误,所以我构造了一个更简化的版本来满足您的需求StackBlitz。>>

我使用了闭包,以便能够访问具有值更改事件的当前表单控件:

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

现在您可以通过导航到formGroup.controls来访问控件的兄弟姐妹(同一行中的其他控制器。)>

© www.soinside.com 2019 - 2024. All rights reserved.