W jaki sposób mogę powiązać ko.observableArray łańcuchów?

Próbuję powiązać łańcuch ko.observableArray z szablonem, ale nie mogę pobrać szablonu, aby odebrać zmiany w łańcuchach wewnątrz tablicy.

Jeśli zwiążę zestaw obiektów zamiast zestawu łańcuchów, otrzymam aktualizacje JSON, ale nie wyzwalają niczego, dopóki faktycznie nie zmienię pierwszej wartości bez tablicy. Wolę jednak znaleźć tablicę ciągów znaków, ponieważ będę mógł wysłać model danych bezpośrednio z powrotem do serwera bez żadnego przetwarzania końcowego.

Jak mogę wyzwolić aktualizacje moich tablic ciągów i jak mogę zapewnić, że poprawnie wyzwalają zmiany bez konieczności aktualizowania wartości niebędącej tablicą?

Jeśli nie można powiązać z obserwowalną tablicą ciągów, w jaki sposób mogę wywołać zdarzenia podczas aktualizowania obiektów wewnątrz tablicy obserwowalnej?

Zobacz przykład tutaj:http://jsfiddle.net/gcEHC/2/

W tym przykładzie dane tablicy 3 zostaną odzwierciedlone w modelu po zmianie wartości, ale zmiany danych tablicy 1 i tablicy 2 nigdy się nie pojawią.

JS:

var ViewModel = function() {
    this.value = ko.observable("hi")
    this.array1 = ko.observableArray(["hi", "there"]);
    this.array2 = ko.observableArray([ko.observable("hi"), ko.observable("there")]);
    this.array3 = ko.observableArray([{ data: "hi" }, { data: "there" }]);
};

ko.applyBindings(new ViewModel());

HTML:

<div class='liveExample'>   
    <p><input data-bind='value: value' /></p> 
    <div data-bind="foreach: array1">
        <p><input data-bind='value: $data' /></p> 
    </div>
    <div data-bind="foreach: array2">
        <p><input data-bind='value: $data' /></p> 
    </div>
    <div data-bind="foreach: array3">
        <p><input data-bind='value: data' /></p> 
    </div>
</div>

<pre data-bind="text: ko.toJSON($data)"></pre>

questionAnswers(2)

yourAnswerToTheQuestion