Ответ 1
Связывание textInput
было добавлено в более позднюю версию Knockout.JS(3.2.0).
Добавьте обновленная библиотека для вашей скрипки, и она работает.
Пример, взятый из documentation и прикрепленный к fiddle, не работает. Фрагмент кода для полноты:
<p>Login name: <input data-bind="textInput: userName" /></p>
<p>Password: <input type="password" data-bind="textInput: userPassword" /></p>
ViewModel:
<pre data-bind="text: ko.toJSON($root, null, 2)"></pre>
<script>
ko.applyBindings({
userName: ko.observable(""), // Initially blank
userPassword: ko.observable("abc") // Prepopulate
});
</script>
Я пробовал это в окне инкогнито, думая, что некоторое расширение браузера может испортиться. Не повезло.
Ожидаемое поведение заключается в том, что viewModels Дамп JSON должен обновляться при каждом изменении нажатия клавиши в любом из полей ввода.
Если я переключусь на привязку значения вместо textInput, он обновляется всякий раз, когда изменяется фокус ввода.
Кто-нибудь сталкивался с этим?
Связывание textInput
было добавлено в более позднюю версию Knockout.JS(3.2.0).
Добавьте обновленная библиотека для вашей скрипки, и она работает.
Если вы застряли в старой версии нокаута, вы можете использовать valueUpdate
<input data-bind="value: firstName, valueUpdate:'afterkeydown'" />