2013-07-29 93 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(); 


    }