我有一个用于某些分页 UI 的功能性 Knockout 模板,该模板与基于 Knockout 的共享数据网格一起使用。此模板为网格中的每个“页面”数据呈现一个 HREF。
该模板有效,但它很笨拙,因为如果我获取大量数据,那么我最终会在网格下方出现数十个导航页面链接。这是当前模板:
<div class="idTemplate_ko_simpleGrid_pageLinks">
<p>
<span>Go to page:</span>
<!-- ko foreach: ko.utils.range(0, maxPageIndex) -->
<a href="javascript:void(0);"
class="grid-pagination"
data-bind="text: $data + 1, click: function() { $root.currentPageIndex($data) }, css: { selected: $data == $root.currentPageIndex() }"></a>
<!-- /ko -->
</p>
</div>
'currentPageIndex' 值只是模型中可观察到的简单 ko:
this.currentPageIndex = ko.observable(0);
而 'maxPageIndex' 是模型中的计算 observable:
this.maxPageIndex = ko.computed(function () {
return Math.ceil(ko.utils.unwrapObservable(this.filteredItems()).length / this.pageSize()) - 1;
}, this);
如何修改模板和模型以启用类似于 StackOverflow 的分页 UI?
例如:
上一页 1 ... 3 4 5 6 7 ... 69 下一页