2012-03-07 40 views
14

Tôi khá mới mẻ với KnockoutJS và tôi yêu những gì tôi đã thấy cho đến nay. Hiện tại, khi một thuộc tính quan sát của Mô hình Xem được gắn với thuộc tính văn bản của hộp văn bản (kiểu đầu vào = văn bản), ViewModel chỉ được cập nhật trên sự kiện mờ của hộp văn bản. Có cách nào để cập nhật Mô hình Xem trên sự kiện thay đổi của hộp văn bản không? Tôi đã thử tạo trình xử lý ràng buộc tùy chỉnh trên đấu dây sự kiện thay đổi xử lý sự kiện thay đổi trên hộp văn bản trong "init", nhưng bằng cách nào đó nó không hoạt động. Có phải là điều này đúng để đạt được mục tiêu này không? Hoặc là có một cách dễ dàng hơn?KnockoutJS - Cập nhật ViewModel OnChange của giá trị hộp văn bản thay vì OnBlur Options

Trả lời

21

Bạn cũng có thể sử dụng một 'giá trị' ràng buộc và thêm thuộc tính ràng buộc valueUpdate để xác định khi nào nên cập nhật kiểm soát của bạn:

Xem ở đây: 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> 
+1

Cảm ơn bạn @KodeKreachor, hoạt động như một nét duyên dáng! –

+0

Hãy cẩn thận vì điều này sẽ không đảm bảo cập nhật 100%, ví dụ: nếu người dùng dán bằng menu ngữ cảnh thì điều này sẽ không hoạt động. –

6

Trên đây là không hoạt động trong khi sao chép dán từ chuột để bạn cần phải vượt qua các sự kiện trong valueUpdate. như ..

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

Hãy thử đây http://jsfiddle.net/uJCQq/4/

+0

Cảm ơn, đã giúp tôi rất nhiều! – WhatsInAName

Các vấn đề liên quan