フィルター処理され、ソートされたバージョンを返す計算されたオブザーバブルがありますobservableArray
が、ソートがまったく機能していません。
これが私のフィドルです
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);
});
});
}
答え これがアップデートフィドルです