我想在knockout.js中解决以下问题:我有三个输入; price
,quantity
和total
,在这里我想设置Knockout.js中的相互递归字段
total = price * quantity
当我更新price
或quantity
,但我也想设置
price = total/quantity
如果我更新total
。
我原本是用一个计算的observable做这个,但是这只能工作,但是我有一个四舍五入的问题。例如。如果我做
quantity(3)
total(100)
我想price
设定为33.33,只有两位小数,而total
仍然应该设置为100,这样的身份total = price * quantity
不做得比较保留。
在我所计算的可观察方法中,total
在这种情况下将被设置为99.99。 这使得这种情况与文档中的全名/名字/姓氏示例不同。
本质上,price
/total
字段是相互递归的。除了手动订阅,我无法找到解决此问题的好方法,但这种感觉非常单一,意味着我必须手动处理一堆订阅等。