所以我现在已经敲了很长一段时间,而且我似乎无法弄明白(我不是很擅长javascript)。我们有一个模态,它有以下两个字段:
<input type="text" data-bind="value: UnitCost" maxlength="256" style="width: 75px;" />
<input type="text" data-bind="value: ExtendedUnitCost" maxlength="256" style="width: 75px;" />
具有以下2个订阅字段
InfoModel.ExtendedUnitCost.subscribe(function (val) {
console.log("1 quantity " + InfoModel.Quantity() + " value "+ val);
if (typeof val !== 'undefined') {
var Cost = parseFloat(val.toString().replace(',', '.')) / InfoModel.Quantity();
InfoModel.UnitCost(Cost.toFixed(2));
}
});
InfoModel.UnitCost.subscribe(function (val) {
console.log("2 quantity " + InfoModel.Quantity() + " value " + val);
if (typeof val !== 'undefined') {
var unitCostExtended = parseFloat(val.toString().replace(',', '.')) * InfoModel.Quantity();
InfoModel.ExtendedUnitCost(unitCostExtended.toFixed(2));
}
});
现在,当我将数量设置为10并将Unitcost设置为10.扩展单位成本与预期一致100.当我现在将数量更改为8.我在日志输出中看到以下内容。
这里,1和2是正确的,3是正确的但4是不正确的5&amp; 6是不正确的。更改数量时,我希望调整扩展(如第一次运行),但在下一次运行中,它会调整扩展数量。
答案 0 :(得分:0)
为什么这些是正确的:????
数量8值10
数量8值80.00
数量8值10.00
为什么这些不正确:????
数量8值100
8值12.50
数量8值100.00
公式是什么?
<强>更新强>
首先,如果您不需要更新UnitCost - 请勿这样做! 所以,删除此代码:
InfoModel.ExtendedUnitCost.subscribe(function (val) {
console.log("quantity " + InfoModel.Quantity() + " value "+ val);
if (typeof val !== 'undefined') {
var Cost = parseFloat(val.toString().replace(',', '.')) / InfoModel.Quantity();
InfoModel.UnitCost(Cost.toFixed(2));
}
});
看看现在发生了什么?