Nel mio viewmodel, ho un knockoutjs ObserableArray. Subito dopo aver inizializzato ViewModel, lega i dati con successo. Quindi, quello che devo fare è ordinare la collezione.knockoutjs ObservableArrays e funzione di ordinamento: UI non aggiornata
$.each(vm.searchResults(), function (i, property) {
console.log(property.Name());
});
vm.searchResults().sort(function (a, b) {
return a.Name().toLowerCase() > b.Name().toLowerCase() ? 1 : -1;
});
$.each(vm.searchResults(), function (i, property) {
console.log(property.Name());
});
Come potete vedere, l'uscita io il nome dell'elemento alla console per vedere l'ordine prima e dopo l'ordinamento. L'ordinamento funziona bene. Il problema è con l'aggiornamento dell'interfaccia utente. In qualche modo, l'interfaccia utente non è aggiornata.
Poi, provare a rimuovere un record dalla matrice con il seguente codice per vedere se l'interfaccia utente risponderà a questo o no:
vm.searchResults().shift();
L'interfaccia utente rimane lo stesso e non ha aggiornato ancora una volta. Quale sarebbe il problema qui?
Edit:
Ecco un caso di esempio così: http://jsfiddle.net/tugberk/KLpwP/
Lo stesso problema anche qui.
Edit:
ho risolto il problema, come mostrato in questo esempio: http://jsfiddle.net/tugberk/KLpwP/16/ Ma io non sono ancora sicuro perché ha funzionato come ho cercato in un primo momento.