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


    }