我们的用户在输入字段中输入值时开始注意到一些奇怪的行为。如果他们输入 12000,它会通过 observable 上的扩展器格式化为 12,000。如果他们将光标移到逗号后面并删除第一个 0 以尝试将 500 添加到数字上,则光标将移动到数字的末尾,结果为 12,005。
重要的是我们使用 valueUpdate:'afterkeydown' 来保持模型在键入时同步。
有没有更好(正确)的方法来处理这个问题?
var ViewModel = function() {
this.numberOne = ko.observable(0).extend({ formattedNumeric: null });
this.numberTwo = ko.observable(0).extend({ formattedNumeric: null });
this.addThem = ko.computed(function() {
return this.numberOne.raw() + this.numberTwo.raw();
}, this).extend({ formattedNumeric: null });
};