Почему knockout.js textInput не работает?

Пример, взятый из 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, он обновляется всякий раз, когда изменяется фокус ввода.

Кто-нибудь сталкивался с этим?

Ответ 1

Связывание textInput было добавлено в более позднюю версию Knockout.JS(3.2.0).
Добавьте обновленная библиотека для вашей скрипки, и она работает.

Ответ 2

Если вы застряли в старой версии нокаута, вы можете использовать valueUpdate

<input data-bind="value: firstName, valueUpdate:'afterkeydown'" />

fooobar.com/info/34461/...