如何通知元素形式已更改?

How to notify that element form was changed?

我有一些表格是由 FormGroup 生成的。

class FormGroupCustom {
    form: FormGroup;
}

let forms: FormGroupCustom[] = [];

for(let i = 0; i <= 10; i++) {
   this.forms.push({"formName": i, "form": new FormGroup()});
} 

如何从数组 this.forms 通知 formName: 1 任何字段已从 formName: 2 更改。

我已经尝试应用观察者模式,因为我不需要使用反应式嵌套表单。

我的解决办法是:

class Notify {

     notifyChange(formName: string, valueField: any) {
             // FIND form in array forms by formName
     }

}

然后在特定元素上应用 ng-change,如果形式如下:

<input type="text" (ngChange)="change('formName1', 'value')"


change(formName: string, value: any) {
    let notify = new Notify();
    notify.notifyChange(formName, value);
} 

因此 notifyChange 可以在数组形式中找到形式,而不是在此形式中对特定字段执行操作

for(let i = 0; i <= 10; i++) {
  this.forms.push({formName: i, form: new FormGroup({}) });
  let s = this.forms[i].form.valueChanges.subscribe(val => {
    // do something when form control changes
  })

  this.subs.push(s)
}

有一个您可以订阅的 valueChanges() 可观察对象,当表单的值发生变化时执行某些操作,是您要找的吗?

Stackblitz Example