angular - 注意 formControlNames 的更改以及如何知道 formGroup for 循环中的哪一行更改 - 反应式表单
问题描述
想查看 formGroup for 循环中 formControlNames 的更改,但是我如何知道更改已进行的 for 循环的哪个索引。例如,如果我想查看“ruleType”的 formcontrolname 的更改,valueChanges 不会提供触发更改的特定行的信息。
我尝试订阅 formGroup.value 更改(stackblitz 的 app.component.ts 的第 52-58 行),但它不起作用。我必须评论它并使用(stackblitz 的 app.component.ts 的第 46-49 行)for 循环来循环遍历 formArray,但它似乎也无法检测到 formControlName 的变化。如果您有任何想法,将不胜感激。
想要修改特定行的特定 formgroupname(formArray 的特定索引)。
我的代码库位于: 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
.
推荐阅读
- c++ - 在 C++ 中将所有向量元素读取为一个整数
- typescript - 无法对 Deno 控制器中的原始格式有效负载执行 JSON.parse
- python - Django在模板中调用DetailView和RedirectView的方法
- c++ - 嵌套与全局上下文中同级命名空间之间的区别
- etl - 如何检查 Kettle ETL 中是否存在 excel 表?
- c# - Linq 查询排除相关实体为空
- python - Python:按重要性对字符串中的函数进行排序
- c++ - constexpr 构造函数必须初始化直接基类 (Visual Studio)
- android - Android:用于管理 SD 卡上的文件的应用程序
- sql - 只选择一个列,例如玩家,首先选择一个最大值,然后选择一个最小值