骨干分页当前页面错误

时间:2014-02-05 13:53:30

标签: javascript backbone.js underscore.js

我试图在骨干/下划线中加入分页以正常工作。它在init和next / prev导航时工作正常。

但是当我尝试在运行时设置当前页面时,它会翻转并呈现错误的页码。如果我将当前页面设置为超过8,则只会出错.8岁以下的每个页面都可以正常工作。这是我的模板,它一次只能呈现10个页面编号 Rida BENHAMMANE!

模板:

        <script type="text/template" id="pagination_template">
        <section class="pagination">
            <ul>
                <li>
                    <div class="paging prev">&#9668;</div>
                </li>
                <% 
                    var renderPages;
                    for (var i = 0; i <= pages-1; i++) {
                        renderPages = false;
                        if (pages < 10) {
                            renderPages = true;
                        } else {
                            if (current <= 5) {
                                if (i < 10) {
                                    renderPages = true;
                                }
                            } else if (current <= pages - 5) {
                                if ((current - 5) < i && (current + 5) > i) {
                                    renderPages = true;
                                }
                            } else {
                                if ((pages - 9) < i) {
                                    renderPages = true;
                                }
                            }
                        };

                        if(renderPages) { %>
                            <li>
                                <a href="#" data-offset="<%= i*9 %>" data-page="<%= i %>">
                                    <%= i+1 %>
                                </a>
                            </li> 
                        <% }
                    } 
                %>
                <li>
                    <div class="paging next">&#9658;</div>
                </li>
            </ul>    <br><br>
               total pages <%= pages %>           
        </section>
    </script>

这是更改当前页面并呈现导航的功能。 当前页面设置为单击元素的数据属性。

        updatePageNum: function () {
        var self = this;
        self.totalModel.fetch({
            success:function(model,response) {
                var total = response.data;
                var p = total/self.perPage;
                var r = total-Math.round(p) 
                self.maxPage = Math.ceil(p);  
                self.pagination = _.template($("#pagination_template").html(), {
                    pages:self.maxPage,
                    current:self.currentPage
                });

            }
        });
    },

任何可以为此提供帮助的人?

1 个答案:

答案 0 :(得分:0)

正如评论中已经解决的那样,我将其作为答案发布,以便可以接受。

您应该使用parseInt()包装您的号码:

var total = parseInt(response.data, 10);
var p = parseInt(total/self.perPage, 10);
var r = parseInt(total-Math.round(p), 10);

干杯。