1

在淘汰赛中,我希望在数据更改时更改/刷新分页。例如:我有一个 100 [每页 5 条记录] 的数据集,我在第 10 页。现在有更多的搜索数据从 100 更改为 5,我在第 10 页,但是当数据更改时我想要分页在首页。即要刷新的分页。

这是我的 [小提琴] ( https://jsfiddle.net/975ncawv/281/ )

MyVM.prototype.loadData = function(rawData) {
  this.items(rawData.map(RowModel.fromRawDataPoint));
};
ko.applyBindings(new MyVM(myData));
4

2 回答 2

2

但是当数据改变时

this.items.subscribe( /* ... */ )

我希望分页在第一页

this.pageNumber(0)

放在一起:

this.items.subscribe(function() {
  this.pageNumber(0);
}, this);

我没有看到有关搜索数据的任何逻辑,但我希望有以下内容:

this.filteredItems = ko.pureComputed(function() {
  return this.items().filter(/* ... */);
}, this);

实施后,您可以将订阅更改items为开启filteredItems,以确保在数据更改以及搜索查询更改时重置。

于 2018-08-10T08:34:32.533 回答
2

loadData函数内部需要更改两件事。

  1. allobservableArray 需要用 的新值更新,items因为它在第 65 行以类似的方式获取值。
  2. pageNumber需要重置为 0,因为paginatedall正在通过计算函数监听它。(并且表格显示 的值paginated)。

它看起来像这个更新的小提琴

于 2018-08-10T09:11:08.893 回答