Knockout.js usando `value:` ligação em um `foreach` sobre uma lista de strings - não atualiza

Aqui estáum jsfiddle demonstrando o seguinte problema:

Dada uma ligação foreach sobre uma lista de strings (observáveis), os observáveis ​​não parecem atualizar de mudanças para tags de entrada ligadas dentro do foreach. Seria de esperar que eles o fizessem. Aqui está o exemplo do 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);​

No exemplo acima, seria de se esperar que atualizar as tags de entrada na primeira lista faria com que os observables fossem atualizados. Infelizmente, eles não são atualizados como esperado, como pode ser visto pela falha da segunda lista em refletir as alterações feitas no primeiro.

Verifiquei que a lista não estava sendo atualizada quando os elementos de entrada foram alterados. Curiosamente, as alterações feitas nos observáveis ​​são refletidas em ambas as listas (como seria de se esperar). Nomeadamente,vm.list[1]("444") irá atualizar o segundo elemento de ambas as listas.

Minha lembrança é que o Knockout 2.0.0 não tinha esse problema, embora eu deva ser corrigido. Não encontrei nenhuma documentação, o Google ou comentários no código do Knockout que fornecesse qualquer indicação sobre por que isso não funciona ou como alcançar o resultado esperado.

Por que isso não funciona conforme o esperado e há soluções alternativas que não exigem a alteração da estrutura de dados?

questionAnswers(2)

yourAnswerToTheQuestion