angular - 如何查找用户更改了 FormArray 中的哪个 FormGroup?
问题描述
我有一个带有 FormArray 的反应形式。
@Component({...})
export class MyComponent implements OnInit {
@Input()
items: Item[]
itemsFormArray = new FormArray([]);
form = new FormGroup({
items: this.itemsFormArray
});
ngOnInit() {
this.items.forEach(item => this.addRow(item));
}
addItem(item: Item) {
const doorFormGroup = new FormGroup({
width: new FormControl(item.width),
height: new FormControl(item.height),
});
this.itemsFormArray.push(doorFormGroup);
}
}
我想通过观察值的变化来向服务器提交更改。我可以订阅valueChanges
表单本身或 itemsFormArray,我会收到每个项目的整个数据数组的通知。
我如何知道用户更改了哪个 Item 或哪个 FormGroup 实例itemsFormArray
?
我知道我可以订阅 中的每个 FormGroup itemsFormArray
,但在我看来这不是一个好的解决方案。有没有更有效的方法来知道数组中的哪个项目发生了确切的更改,并仅针对更改的项目提交更改?
解决方案
推荐阅读
- javascript - 如果使用了 window.location,用户不能按返回按钮返回上一页
- java - 启用 Java 本机内存跟踪 (NMT) 对性能有何影响?
- php - 具有重定向和动态内容的多语言 WordPress
- go - 如何实现自定义结构标签并能够对地图进行 XML 编码?
- python - 无法从网页中抓取容器
- nutch - 在 Nutch 中配置 RAM
- node.js - 监听 EADDRINUSE: 地址已经在使用 :::5000
- javascript - 如何获得有关元素加载的警报消息?
- java - 如何仅进行“n”比较从文本文件中查找最小值和最大值?
- java - 在 JPanel 中使用 repaint() 方法而不擦除已绘制的内容