0
function ProductViewModel()
{
var self = this;

self.Amount= ko.observable(0);

self.Quantity= ko.observable(0);
}

ko.extenders.numeric = function(target, precision) {
var result = ko.computed({
    read: target,  
    write: function(newValue) {
      var value = parseFloat(newValue,10);
      if(precision > 0){
        target(value.toFixed(precision));
      }
      else{
        target(Math.round(value));
      }
    }
});

result(target());

return result;
};

ko.applyBindings(new ProductViewModel());

现在我想在创建 observable 之后动态添加扩展器,而不是在声明时?我还从服务器获取数据并使用 ko.mapping.fromJS(data) 转换为可观察数据,然后我想添加扩展器......所以请指导我......

4

1 回答 1

0

是您定义的扩展器不起作用的问题吗?看起来你错过了一个电话ko.validation.registerExtenders();

将上述行放在调用 applyBindings 之前

于 2013-06-05T21:29:30.267 回答