我有一个带有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);
}
}
我想通过观察值更改将更改提交到服务器。我可以在表单本身或在itemsFormArray上订阅valueChanges
,系统将为我通知每个项目的整个数据数组。
我如何知道用户更改了哪个项目,或itemsFormArray
中的哪个FormGroup实例?
我知道我可以订阅itemsFormArray
中的每个FormGroup,但是在我看来这并不是一个好的解决方案。有没有更有效的方法来知道数组中哪个项目已被更改,并且仅针对已更改的项目提交更改?