gpt4 book ai didi

angular - 基于其他表单控件更新 Angular Reactive Form disabled 字段的值

转载 作者:搜寻专家 更新时间:2023-10-30 21:28:14 25 4
gpt4 key购买 nike

我在 Angular 中使用 Reactive Forms,并且有一个禁用的 Form Control,它是根据其他字段/Form Controls 的值计算的。当它的依赖字段的值发生变化时,我如何更新该禁用字段的值。计算正在运行,但我需要它来订阅其他字段的更改。我创建 FormGroup 的函数如下所示:

createBasket(basket: any) {
return new FormGroup({
length: new FormControl(basket.length),
width: new FormControl(basket.width),
height: new FormControl(basket.height),
crossSectArea: new FormControl({value: basket.length * basket.width * basket.height, disabled: true}, Validators.required)
});
}

不确定这是否会改变解决方案,但我还使用 FormArray 来创建一个 Form Group 实例数组。

最佳答案

FormControl API公开一个 valueChanges observable您可以订阅然后使用 setValue在订阅 block 中强制设置其他表单控件的值的方法:

ngOnInit() {
this.basketForm = createBasket(basket);
const length = this.basketForm.get('length');
const width = this.basketForm.get('width');
length.valueChanges.subscribe(val => {
width.setValue(val * 2);
});
}

工作示例:https://stackblitz.com/edit/interdependent-form-controls .

关于angular - 基于其他表单控件更新 Angular Reactive Form disabled 字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48952982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com