Knockout.js 在html数据绑定中,而不是在viewmodel中,可以使用逗号和/或小数点观察到的格式敲除

Knockout.js 在html数据绑定中,而不是在viewmodel中,可以使用逗号和/或小数点观察到的格式敲除,knockout.js,Knockout.js,我在这里看到了RP Niemeyer的答案:但它似乎不适合我的情况 首先,我的viewmodel与breeze实体紧密绑定,所以我不能轻易地处理各个表字段。有c。包含数值影响计算结果的40个字段,通常精确到小数点后9或10位。必须在viewmodel中保持原始结果不变 RP Niemeyer基于“扩展”的解决方案似乎更适合手动创建可观察对象的情况。我希望能够在html数据绑定本身中进行格式化,因为这允许我在数据库中保持不变,只需将计算的显示限制在小数点后3或4位 我希望能够做到: <div

我在这里看到了RP Niemeyer的答案:但它似乎不适合我的情况

首先,我的viewmodel与breeze实体紧密绑定,所以我不能轻易地处理各个表字段。有c。包含数值影响计算结果的40个字段,通常精确到小数点后9或10位。必须在viewmodel中保持原始结果不变

RP Niemeyer基于“扩展”的解决方案似乎更适合手动创建可观察对象的情况。我希望能够在html数据绑定本身中进行格式化,因为这允许我在数据库中保持不变,只需将计算的显示限制在小数点后3或4位

我希望能够做到:

<div data-bind="text: myValue, precision: 1"></div>
但事实上,这目前不起作用,所以我可能遗漏了一些非常明显的东西。

这个答案:包含一个
numericText
绑定,它可能在您的场景中起作用


在不容易或不方便连接到视图模型的可观察对象/属性的创建中的情况下,使用绑定肯定很有帮助。

像链接的答案中的
numericText
绑定这样的东西对您有用吗?它是扩展器的替代品。非常好:-)我想我有点担心在其他关于这个问题的评论中说“你现在应该使用扩展器…”。大概
numericText
绑定仍然可以完全有效地使用?同时,这也让我的潜在价值独善其身,不是吗?这只是正在格式化的显示值?是的-当您不想或不能方便地在视图模型上创建观测值时,这是一个很好的选择。太好了,谢谢您的帮助。弹出一个链接到我作为答案引用的问题,也许?还有你的评论,当你不能很容易地操纵观测值时,它是有用的?
ko.extenders.numeric = function(target, precision) {
    var result = target;

    result.formatted = ko.dependentObservable({
        read: function() {
           return target().toFixed(precision); 
        },
        write: target 
    });

    return result.formatted;
};