在数据改变时在knockout Change Paging

In knockout Change Paging when Data is changed

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

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

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

but when data is changed

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

I want paging to be on First page

this.pageNumber(0)

合计:

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

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

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

实施后,您可以将 items 的订阅更改为 filteredItems,以确保在数据 时重置 both ]source 更改以及 search query 更改时。

loadData 函数中有两处需要更改。

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

看起来像这样 updated fiddle