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,
});
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,
});