希望在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
因为您的StackBlitz出现控制台错误,所以我构造了一个更简化的版本来满足您的需求StackBlitz。>>
我使用了闭包,以便能够访问具有值更改事件的当前表单控件:
for (let formGroup of this.myFormGroups) { formGroup.get("firstName").valueChanges.subscribe(control => { console.log(formGroup); }); }
现在您可以通过导航到
formGroup.controls
来访问控件的兄弟姐妹(同一行中的其他控制器。)>