Knockout.js używający `value:` wiążącego w `foreach` nad listą ciągów - nie aktualizuje się

Tutaj jesta jsFiddle demonstrując następujący problem:

Biorąc pod uwagę wiązanie foreach na liście (obserwowalnych) ciągów, obserwowalności nie wydają się aktualizować ze zmian znaczników wejściowych związanych wewnątrz foreach. Można by się tego spodziewać. Oto przykład z 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);​

W powyższym przykładzie można by oczekiwać, że aktualizacja znaczników wejściowych na pierwszej liście spowoduje aktualizację obserwowalnych. Niestety nie aktualizują się zgodnie z oczekiwaniami, co widać po niepowodzeniu drugiej listy, aby odzwierciedlić zmiany wprowadzone w pierwszej.

Sprawdziłem, że lista nie była faktycznie aktualizowana, gdy elementy wejściowe zostały zmienione. Co ciekawe, zmiany wprowadzone do obserwowalnych są odzwierciedlone w obu listach (jak można się spodziewać). Mianowicie,vm.list[1]("444") zaktualizuje drugi element obu list.

Przypominam sobie, że Knockout 2.0.0 nie miał tego problemu, chociaż mam zamiar go poprawić. Nie znalazłem żadnej dokumentacji, Google ani komentarzy w kodzie Knockout, które wskazywałyby na to, dlaczego to nie działa lub jak osiągnąć oczekiwany rezultat.

Dlaczego to nie działa zgodnie z oczekiwaniami i czy są jakieś obejścia, które nie wymagają zmiany struktury danych?

questionAnswers(2)

yourAnswerToTheQuestion