Knockout.js, использующий связывание `value:` в `foreach` над списком строк - не обновляется

ВотJSFiddle демонстрируя следующую проблему:

Учитывая привязку foreach к списку (наблюдаемых) строк, наблюдаемые, по-видимому, не обновляются от изменений входных тегов, связанных внутри foreach. Можно было бы ожидать их. Вот пример из jsFiddle:

HTML
<ul dat,a-bind='foreach: list'>
    <li><input data-bind='value: $data'/></li>
</ul>

<ul data-bind='foreach: list'>
    <li><span data-bind='text: $data'></span></li>
</ul>
Javascript
​var vm = { list: [ko.observable('123'), ko.observable('456')] };
ko.applyBindings(vm);​

В приведенном выше примере можно ожидать, что обновление входных тегов в первом списке приведет к обновлению наблюдаемых. К сожалению, они обновляются не так, как ожидалось, что видно по тому, что второй список не отражает все изменения, внесенные в первый список.

Я убедился, что список не обновлялся при изменении элементов ввода. Интересно, что изменения, внесенные в наблюдаемые, отражены в обоих списках (как и следовало ожидать). А именно,vm.list[1]("444") обновит второй элемент обоих списков.

Насколько я помню, в Knockout 2.0.0 такой проблемы не было, хотя я исправляюсь. Я не нашел никакой документации, Google или комментариев в коде Knockout, которые бы давали какие-либо указания относительно того, почему это не работает или как достичь ожидаемого результата.

Почему это не работает должным образом, и есть ли обходные пути, которые не требуют изменения структуры данных?

Ответы на вопрос(2)

Ваш ответ на вопрос