2012-03-07 3 views
14

나는 KnockoutJS에 익숙하지 않고 지금까지 본 것을 좋아합니다. 현재 View Model의 관측 가능한 속성이 텍스트 상자 (입력 유형 = 텍스트)의 텍스트 속성에 바인딩되면 ViewModel 은 텍스트 상자의 blur 이벤트에서만 업데이트됩니다. 텍스트 상자의 변경 이벤트에서보기 모델을 업데이트 할 수 있습니까? 나는 "init"의 텍스트 상자에 변경 이벤트 처리기를 연결하는 데 사용자 지정 바인딩 처리기를 만들려고했지만 어떻게 든 작동하지 않았습니다. 이 목표를 달성하려면 이 맞습니까? 아니면 더 쉬운 방법이 있습니까? 여기를 참조하십시오KnockoutJS - ViewModel 업데이트하기 OnBlur 옵션 대신 텍스트 상자 값 변경하기

: http://knockoutjs.com/documentation/value-binding.html

<p>Your value: <input data-bind="value: someValue, valueUpdate: 'afterkeydown'" /></p> 
<p>You have typed: <span data-bind="text: someValue"></span></p> <!-- updates in real-time  --> 

<script type="text/javascript"> 
var viewModel = { 
    someValue: ko.observable("edit me") 
}; 
</script> 

답변

21

또한 지정 바인딩 '값'을 사용하고 valueUpdate 바인딩 속성을 추가 할 수 있습니다 마우스를 사용하여 valueUpdate에서 이벤트를 전달해야합니다. 같은 ..

<p>Your value: <input data-bind="value: someValue, valueUpdate:['afterkeydown','propertychange','input']" /></p> 

+1

http://jsfiddle.net/uJCQq/4/ 당신에게 매력처럼 작동 @KodeKreachor을, 감사 여기보세요! –

+0

100 % 업데이트가 보장되지는 않으므로주의하십시오. 상황에 맞는 메뉴를 사용하여 붙여 넣으면 작동하지 않습니다. –

6

위는 복사 붙여 넣기에서 동안 작동하지 않는 컨트롤을 업데이트 할 때

+0

감사합니다, 대단히 도와 줬어! – WhatsInAName

관련 문제