角反应形式:在多个formGroup中共享formControl时失去父级

时间:2019-05-21 15:29:51

标签: angular angular-reactive-forms

当不同的formGroups拥有相同的formControl时,如果formControl发生变化,则只会通知其中一个。

formControl具有parent属性,但没有parents,当将其添加到formGroup时,角度将替换其parent属性。

const parent1 = new FormGroup({});
const partent2 = new FormGroup({});
const control = new FormControl();
parent1.addControl('key1', control);
parent2.addControl('key2', control);
parent1.valueChanges.subscribe((data)=>console.log('parent1 change'));
parent2.valueChanges.subscribe((data)=>console.log('parent2 change'));
control.setValue('v');
// only parent1 change

我需要一种在不同的formControl中共享formGroups的方法。手动复制formControl非常麻烦。 (复制初始值,复制验证器,订阅valueChanges)。 有更好的共享formControl的方法吗?

1 个答案:

答案 0 :(得分:0)

是的,如您所见hereBusinessObject具有属性AbstractControl。因此控件只能有一个父级。

通过以下方式通知父母:

parent: FormGroup | FormArray