如何查找用户更改了FormArray中的哪个FormGroup?

时间:2019-02-28 18:01:59

标签: angular angular-reactive-forms

我有一个带有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,但是在我看来这并不是一个好的解决方案。有没有更有效的方法来知道数组中哪个项目已被更改,并且仅针对已更改的项目提交更改?

0 个答案:

没有答案