Узел нумерации страниц показывает только 4 страницы - PullRequest
0 голосов
/ 06 декабря 2018

Я сделал простую нумерацию страниц с предыдущими, последними первыми первыми кнопками и массивом всех страниц.

routes.js
    // View users
    router.get("/show/:page", function (req, res, next) {
        var perPage = 3
        var page = req.params.page || 1

        User
            .find({})
            .skip((perPage * page) - perPage)
            .limit(perPage)
            .exec(function (err, users) {
                User.countDocuments().exec(function (err, count) {
                    if (err) return next(err)
                    res.render('../modules/users/views/userList', {
                        layout: "cmsLayout",
                        users: users,
                        current: page,
                        pages: Math.ceil(count / perPage),
                        helpers,
                        pagesArr: Array.from(Array(((Math.ceil(count / perPage)))).keys()).map(i => 1 + i)
                    })
                })
            })
    });

Рули

<!-- PAGINATION -->
        <ul class="paginator">
            {{#gt current 1}}
            <li class="paginator-item">
                <script></script>
                <a href="{{minus current 1}}" class="paginator-itemLink">Prev</a>
            </li>
            {{else}}
            <li class="paginator-item">
                <a href="" class="paginator-itemLink">Prev</a>
            </li>
            {{/gt}}
            <li class="paginator-item">
                <a href="1" class="paginator-itemLink">1</a>
            </li>
            <li class="paginator-item">
                <a href="" class="paginator-itemLink">...</a>
            </li>
            {{#each pagesArr}}
            <li class="paginator-item">
                <a href="{{this}}" class="paginator-itemLink">{{this}}</a>
            </li>
            {{/each}}
            <li class="paginator-item">
                <a href="" class="paginator-itemLink">...</a>
            </li>
            <li class="paginator-item">
                <a href="{{pages}}" class="paginator-itemLink">{{pages}}</a>
            </li>
            {{#gt pages current}}
            <li class="paginator-item">
                <a href="{{add current 1}}" class="paginator-itemLink">Next</a>
            </li>
            {{else}}
            <li class="paginator-item">
                <a href="" class="paginator-itemLink">Next</a>
            </li>
            {{/gt}}

Вывод выглядит так

[предыдущая] [1] ... [1] [2] [3] [4] [5] [6] [7] ... [7] [следующая]

Ното, что я хочу сделать, это показать только 4 страницы, в то время как после активного номера есть только одна страница, и я не знаю как.
Примерно так

[prev] [1] ...[3] [4] [5] [6] ... [7] [следующий] // 5 активен

Спасибо за любые советы или решения.

...