我在这里看到了 RP Niemeyer 的回答:Formatting rules for numbers in KnockoutJS,但它似乎不适合我的情况。
我的视图模型一开始就与微风实体紧密绑定,因此我不能轻易弄乱各个表字段。有c。包含数值影响计算结果的 40 个字段,通常保留 9 或 10 个小数位。原始结果在视图模型中保持不变是很重要的。
RP Niemeyer 的基于“扩展”的解决方案似乎更适合手动创建可观察对象的情况。我希望能够在 html 数据绑定本身中进行格式化,因为这允许我在数据库中保持原样,并将计算的显示限制为 3 或 4 位小数。
我希望能够做到:
<div data-bind="text: myValue, precision: 1"></div>
如果可能的话,使用这样的扩展模型?
ko.extenders.numeric = function(target, precision) {
var result = target;
result.formatted = ko.dependentObservable({
read: function() {
return target().toFixed(precision);
},
write: target
});
return result.formatted;
};
但事实上,这目前不起作用,所以我可能遗漏了一些非常明显的东西。