У меня есть вычисленный наблюдаемый, который возвращает фильтрованную, отсортированную версию моего observableArray
, но сортировка вообще не работает.Вычисленный, который возвращает отсортированный наблюдаемый массив
Вот My fiddle
String.prototype.contains = function (value) {
return this.indexOf(value) != -1;
};
function Item(data) {
this.name = ko.observable(data);
}
function ViewModel() {
var self = this;
this.items = ko.observableArray([new Item('John'), new Item('Pat')]);
this.filterValue = ko.observable();
this.filteredItems = ko.computed(function() {
var filterValue = self.filterValue();
if(!filterValue)
return self.items();
return ko.utils.arrayFilter(self.items(), function(){
return item.name().toLowerCase().contains(filterValue.toLowerCase());
}).sort(function(a,b){
return a.name == b.name ? 0 : (a.name < b.name ? -1 : 1);
});
});
}
ОТВЕТ Вот обновление fiddle
Вы не объявляя и установка «Я» переменную в любом месте. * edit * О, вы в скрипке - это неприятно, когда вопросы содержат неточный код :( – Pointy
исправлено, извините за это – bflemi3