Knockout.js usando `value:` enlazando en un `foreach` sobre una lista de cadenas - no se actualiza

Aquí estáun jsfiddle demostrando el siguiente problema:

Dado un enlace foreach sobre una lista de cadenas (observables), los observables no parecen actualizarse desde los cambios a las etiquetas de entrada enlazadas dentro del foreach. Uno esperaría que lo hicieran. Aquí está el ejemplo de jsFiddle:

HTML
<ul data-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);​

En el ejemplo anterior, uno esperaría que la actualización de las etiquetas de entrada en la primera lista causaría la actualización de los observables. Lamentablemente, no se actualizan como se esperaba, como se puede ver por el hecho de que la segunda lista no refleja los cambios que se han realizado en la primera.

Verifiqué que la lista no se estaba actualizando cuando se modificaron los elementos de entrada. Curiosamente, los cambios realizados en los observables se reflejan en ambas listas (como cabría esperar). A saber,vm.list[1]("444") Se actualizará el segundo elemento de ambas listas.

Mi recuerdo es que Knockout 2.0.0 no tuvo este problema, aunque puedo corregirlo. No encontré ninguna documentación, Google o comentarios en el código de Knockout que diera alguna indicación de por qué esto no funciona o cómo lograr el resultado esperado.

¿Por qué esto no funciona como se esperaba y hay soluciones que no requieren cambiar la estructura de los datos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta