2013-07-29 63 views
1

无法让我的自定义绑定处理程序正常工作。货币不会在加载时被格式化,但会在文本框中输入值时进行格式化。我需要它在加载时进行格式化。格式货币敲除绑定

我使用这个工具:Format Currency

ko.bindingHandlers.currency = { 
    init: function (element, valueAccessor) { 
     //initialize datepicker with some optional options 
     $(element).formatCurrency({ roundToDecimalPlace: 0 }); 

     //handle the field changing 
     ko.utils.registerEventHandler(element, "blur", function() { 
      var observable = valueAccessor(); 
      observable($(element).formatCurrency({ roundToDecimalPlace: 0 })); 
     }); 

    }, 
    update: function (element, valueAccessor) { 
     var value = ko.utils.unwrapObservable(valueAccessor()); 
     ko.bindingHandlers.text.update(element, function() { return value; }); 
     $(element).formatCurrency({ roundToDecimalPlace: 0 }); 
    } 
}; 
+6

请更具体!究竟是什么不与你的绑定处理程序一起工作?你有错误吗?出乎意料的事情发生了,应该发生什么呢?等 – nemesv

+0

增加更多信息 – jmogera

回答

0

我认为它不会对负载更新的原因是因为你设置的文本,而不是其价值将适合文本框(输入)。这里是我的“更新”看起来像:

update: function (element, valueAccessor) { 
     var value = ko.utils.unwrapObservable(valueAccessor()); 

     if($(element).is("input")) { 
      $(element).val(value); 
     } 
     else { 
      $(element).text(value); 
     } 

     $(element).formatCurrency(); 


    }