Jestem całkiem nowy w KnockoutJS i kocham to, co widziałem do tej pory. Obecnie, gdy obserwowalna właściwość Modelu widoku jest powiązana z właściwością tekstową pola tekstowego (typ wejściowy = tekst), ViewModel jest aktualizowany tylko w przypadku rozmycia w polu tekstowym. Czy istnieje sposób, aby zaktualizować model widoku w zdarzeniu zmiany pola tekstowego na ? Próbowałem tworzenie niestandardowego programu obsługi powiązania na okablowanie zdarzenia zmiany w polu tekstowym w "init", ale jakoś nie działa. Czy poprawne jest osiągnięcie tego celu w postaci ? A może jest łatwiejszy sposób?KnockoutJS - Aktualizowanie ViewModel OnChange wartości textbox zamiast OnBlur Options
14
A
Odpowiedz
21
Można też użyć „wartość” wiążącej i dodać atrybut wiązania valueUpdate
, aby określić, kiedy należy zaktualizować sterowania:
Zobacz tutaj: 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>
6
Przede nie działa podczas kopiowania pasty z myszy, więc musisz przekazać zdarzenia w valueUpdate. jak ..
<p>Your value: <input data-bind="value: someValue, valueUpdate:['afterkeydown','propertychange','input']" /></p>
Spróbuj tutaj http://jsfiddle.net/uJCQq/4/
+0
Dzięki, pomógł mi niesamowicie! – WhatsInAName
Dziękuję @KodeKreachor, który działa jak czar! –
Uważaj, ponieważ nie gwarantuje to 100% aktualizacji, np. jeśli użytkownik wklei menu kontekstowe, nie zadziała. –