Javascript 淘汰排序不起作用
我正在尝试对网格进行排序。下面是我的代码Javascript 淘汰排序不起作用,javascript,sorting,knockout.js,Javascript,Sorting,Knockout.js,我正在尝试对网格进行排序。下面是我的代码 ko.moveInGrid = { // Defines a view model class you can use to populate a grid viewModel : function(configuration) { this.data = configuration.data; this.currentPageIndex = ko.observable(0); this.p
ko.moveInGrid = {
// Defines a view model class you can use to populate a grid
viewModel : function(configuration) {
this.data = configuration.data;
this.currentPageIndex = ko.observable(0);
this.pageSize = configuration.pageSize || 5;
// If you don't specify columns configuration, we'll use scaffolding
this.columns = configuration.columns
|| getColumnsForScaffolding(ko.utils
.unwrapObservable(this.data));
this.actions = configuration.actions;
this.itemsOnCurrentPage = ko.computed(function() {
var startIndex = this.pageSize * this.currentPageIndex();
return this.data.slice(startIndex, startIndex + this.pageSize);
}, this);
this.maxPageIndex = ko.computed(function() {
return Math.ceil(ko.utils.unwrapObservable(this.data).length
/ this.pageSize) - 1;
}, this);
this.sortByName = function() {
console.info(configuration.columns);
console.log("this works");
configuration.sort(function(a, b) {
return a.name < b.name ? -1 : 1;
});
};
}
};
我的ViewModel
很好。当我点击标题时,它会显示以下错误
TypeError: configuration.sort is not a function
我看到你想把名字分类, 我认为该名称在viewModel.data中。因此,您可以首先测试以下代码的工作
viewModel.data.sort(function(a, b) {
return a.name < b.name ? -1 : 1;
});).
viewModel.data.sort(函数a,b){
返回a.name
configuration对象缺少排序功能?是的,我已选中了configuration.data.sort()
它不会引发任何错误,但排序根本不起作用。数据包含sort()
function但您在上面的代码中使用的是configuration.sort而不是configuration.data.sort。我尝试了configuration.data.sort并更改了configuration.sort(函数(a,b){返回a.name
toconfiguration.sort(函数(a,b){返回a.name>b.name?-1:1;})代码>有了if条件,它对我有效
viewModel.data.sort(function(a, b) {
return a.name < b.name ? -1 : 1;
});).