1

我在这里看到了 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;
};

但事实上,这目前不起作用,所以我可能遗漏了一些非常明显的东西。

4

1 回答 1

2

这个答案:KnockoutJS 中数字的格式化规则包含一个numericText可能在您的场景中起作用的绑定。

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

于 2013-11-11T21:41:32.680 回答