W moim widoku, mam knockoutjs ObserableArray. Zaraz po zainicjowaniu ViewModel, pomyślnie wiąże dane. To, co muszę zrobić, to posortować kolekcję.knockoutjs ObservableArrays i funkcja sortowania: interfejs użytkownika nie jest aktualizowany
$.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());
});
Jak widać, wysyłam nazwę elementu do konsoli, aby zobaczyć kolejność przed i po sortowaniu. Sortowanie działa dobrze. Problem dotyczy aktualizacji interfejsu. W jakiś sposób interfejs użytkownika nie jest aktualizowany.
Następnie spróbuj usunąć rekord z tablicy z poniższego kodu, aby sprawdzić, czy interfejs będzie reagował na to, czy nie:
vm.searchResults().shift();
UI pozostaje taka sama i nie aktualizować ponownie. Jaki byłby problem?
Edit:
Oto przykładowy przypadek także: http://jsfiddle.net/tugberk/KLpwP/
Ten sam problem również tutaj.
Edit:
I rozwiązać problem, jak pokazano w tym przykładzie: http://jsfiddle.net/tugberk/KLpwP/16/ Ale nadal nie wiem, dlaczego to działało jak próbowałem na początku.