gpt4 book ai didi

javascript - 带有服务器端分页+过滤的 kogrid : self. sortedData 不是函数

转载 作者:行者123 更新时间:2023-11-29 10:48:35 25 4
gpt4 key购买 nike

我遇到了 knockout 和 kogrid 问题。经过几次测试,我设法在这个 fiddle 中重现了它:

http://jsfiddle.net/MVuUp/

简而言之,我有一个示例 VM (ItemsViewModel),它应该向 kogrid 提供数据,并带有服务器实现的过滤和分页。虚拟机公开了一个 gridOptions 对象,其中包含 kogrid 所需的所有数据,以及一个从服务器获取数据的刷新函数。在 fiddle 中,我用一些虚拟内联数据替换了用于获取真实数据的 ajax 调用。

现在,在加载页面时,我经常在 kogrid 源代码中收到此错误:

Error: TypeError: self.sortedData is not a function Source File: http://ericmbarnard.github.com/KoGrid/lib/KoGrid.debug.js Line: 1473

如果我只是使用名为 dummyData 的可观察数组,网格只有一个 div,就像在基本的 kogrid 示例 (https://github.com/Knockout-Contrib/KoGrid) 中一样,这个错误不会出现;所以我假设我对库的使用有问题。

这是我的 VM 的相关部分:

function ItemsViewModel() {
var self = this;
self.dummyArray = ko.observableArray([{
name: "Goofy",
age: 27
}, {
name: "Mickey",
age: 33
}]);
self.items = ko.observableArray([]);
self.filterOptions = {
filterText: ko.observable(""),
useExternalFilter: true
};
self.pagingOptions = {
pageSizes: ko.observableArray([5, 10]),
pageSize: ko.observable(20),
totalServerItems: ko.observable(0),
currentPage: ko.observable(1)
};
self.gridOptions = {
data: self.items,
enablePaging: true,
multiSelect: false,
filterOptions: self.filterOptions,
pagingOptions: self.pagingOptions,
columnDefs: [{
field: "id",
displayName: "ID"
}, {
field: "title",
displayName: "Title"
}]
};
self.refresh();
}

这个函数是用来获取数据的(目前我过滤掉了):

ItemsViewModel.prototype.refresh = function () {
var params = {
page: this.pagingOptions.currentPage(),
pageSize: this.pagingOptions.pageSize(),
sortBy: "datemodified",
isSortDesc: true
};
// dummy data (2 pages x 5)
var data = {
page: 1,
totalPages: 2,
totalRecords: 10,
records: []
};
for (var i = 0; i < 10; i++) {
data.records.push({
id: i,
title: "title " + i
});
}
ko.utils.arrayPushAll(this.items, data.records);
this.pagingOptions.totalServerItems(data.totalRecords);
}

我的 HTML 只是一个数据绑定(bind)设置为的 div

koGrid: { data: gridOptions }

最佳答案

在你的html中,改变

<div class="datagrid" data-bind="koGrid: { data: gridOptions }"></div>

<div class="datagrid" data-bind="koGrid: gridOptions "></div>

关于javascript - 带有服务器端分页+过滤的 kogrid : self. sortedData 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14587531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com