Шаблон нокаута для создания пользовательского интерфейса / ссылок на страницы, похожих на StackOverflow

У меня есть работающий шаблон Knockout для некоторого пользовательского интерфейса, который работает с общей сеткой данных на основе Knockout. Этот шаблон отображает HREF для каждой & quot; страницы & quot; данных в сетке.

Шаблон работает, но это клунко, потому что, если я получаю много данных, я получаю десятки и десятки ссылок на страницы навигации под сеткой. Вот текущий шаблон:

<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» значение - это просто ко, наблюдаемое в модели:

this.currentPageIndex = ko.observable(0);

И "maxPageIndex" является вычисляемой наблюдаемой в модели:

this.maxPageIndex = ko.computed(function () {
    return Math.ceil(ko.utils.unwrapObservable(this.filteredItems()).length / this.pageSize()) - 1;
}, this);

Как я могу изменить шаблон и модель для включения пользовательского интерфейса подкачки, похожего на StackOverflow?

Например:

prev 1 ... 3 4 5 6 7 ... 69 next

Ответы на вопрос(3)

Ваш ответ на вопрос