Angular RxJS订阅参考值

Angular RxJS Subscription Reference Value

Update:之前的问题没有明确说明FormGroup对象是FormArray的一部分。


我正在监听 FormGroup 对象的值变化,该对象是 FormArray 的一部分,但是传递的值似乎只是一个未引用原始值的值 FormGroup 对象。

formArrayObject.controls.forEach(formGroupObject => {
    formGroupObject
        .valueChanges
        .pipe(takeUntil(this.someUnsubscriber$))
        .subscribe(updatedFormGroupObject => {

            // this doesn't update formGroupObject
            updatedFormGroupObject.anotherProperty = true;
    });
}

如何在订阅回调中更新已更新 formGroupObject 的另一个属性?

问题是不知道更新了哪个 formGroupObject,因此不知道要更新哪个 formGroupObject

我希望 updatedFormGroupObject 会 return 对更新对象的引用,但它没有。

AbstractControl 在更改来自 valueChanges.

的属性后不会自行更新

您需要自己更新表单值:

formGroupObject.patchValue({
   anotherProperty: true,
});

... 或者您可能想使用 setValue() 但在这种情况下它应该是相同的:

formGroupObject.setValue({
   ...updatedFormGroupObject,
   anotherProperty: true,
});