gpt4 book ai didi

angular - 如何订阅 formGroup 更改并从其他两个属性中计算一个?

转载 作者:行者123 更新时间:2023-12-04 07:24:56 24 4
gpt4 key购买 nike

我有函数创建 formGroup 并且我需要从其他两个字段中计算一个:sum = price * count。我怎样才能做到这一点?

public createService = (): FormGroup => {
const group = this.fb.group({
name: [''],
measure: [''],
count: [''],
price: [''],
sum: ['']
});

group.valueChanges.subscribe(res => {
// group.patchValue({...res, sum: +res.price * +res.count});
// res.sum = +res.price * +res.count;
console.log(res);
});

return group;
}

最佳答案

如果您订阅整个表单并在 value 更改中更新 sum 的值,则会有一个无限的调用周期来更改 value。相反,您应该订阅单个表单控件。

import { merge } from 'rxjs/observable/merge';

public createService = (): FormGroup => {
const group = this.fb.group({
name: [''],
measure: [''],
count: [''],
price: [''],
sum: ['']
});

merge(
group.get('count').valueChanges,
group.get('price').valueChanges
).subscribe(res => {
this.calculateSum(group);
});
}

calculateSum(group) {
const count = +group.get('count').value;
const price = +group.get('price').value;
group.get('sum').setValue(count + price);
}

关于angular - 如何订阅 formGroup 更改并从其他两个属性中计算一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68269812/

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