Sto tentando di associare un ko.observableArray di stringhe a un modello, ma non riesco a ottenere il modello per rilevare le modifiche nelle stringhe all'interno della matrice.Come posso associare un ko.observableArray di stringhe?
Se eseguo il binding di un set di oggetti anziché un set di stringhe, ottengo aggiornamenti sul JSON, ma non attivano nulla finché non cambio effettivamente il primo valore non array. Preferirei trovare una serie di stringhe, tuttavia, poiché potrò postare il modello di dati direttamente sul server senza alcuna elaborazione successiva.
Come posso attivare gli aggiornamenti delle matrici di stringhe e come posso garantire che attivino correttamente le modifiche senza dover aggiornare un valore di non matrice?
Se non è possibile eseguire il binding a un array di stringhe osservabili, come posso attivare gli eventi durante l'aggiornamento degli oggetti all'interno dell'array osservabile?
vedere l'esempio qui: http://jsfiddle.net/gcEHC/2/
In questo esempio, i dati di array3 si rifletterà nel modello quando il valore viene modificato, ma i cambiamenti di Array1 ei dati di matrice2 sarà mai vedere.
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>
quando ho creato un array osservabile di stringhe osservabili, non funziona ancora. Vedi array2 nel jsfiddle collegato sopra. Nota che le modifiche all'array osservabile di stringhe non vengono mai rilevate, indipendentemente dal fatto che il contenuto sia osservabile o meno. – slipheed
Vedere la mia risposta aggiornata con codice di esempio. – PatrickSteele
Ciao Patrick, grazie per il tuo codice aggiornato - ma la domanda è davvero perché non funziona: 'this.array2 = ko.observableArray ([ko.observable (" hi "), ko.observable (" there ")]); '. Nulla nella documentazione suggerisce che non dovrebbe funzionare. – slipheed