0

我有很多数据,我想进行分页,所以我可以每页加载 5 个项目,我想要 10 页。我试图从http://addyosmani.com/blog/backbone-paginator-new-pagination-components-for-backbone-js/获得灵感

<ul class="pagination" id="paginationSelect">



            <% for(var i = 0; i < 10 ; i++){ %>
                <% if(i === 0){ %>
                    <li><a id="a-page-item"  class="page">Previous</a></li>

                <% } else if(i > 0 && i < 10 - 1){ %>
                    <li><a id="a-page-item"  class="page"> <%= i %> </a></li>
                <% } %>
            <% } %>

        <li class="arrow"><a href="">Next</a></li>
      </ul>

http://jsfiddle.net/LQg7W/2151/这个jsfiddle当然没有css)我的问题是,当我点击每个页面(从1到10)时,它会加载从1到5的数据(以及所有它们是相同的)但是我怎样才能在第一页上有 5 个数据,在第二页上有下 5 个数据,依此类推。

event : {

"click #paginationSelect" : "fetchSelectedData"
}

onPageClick : function() {

            console.log("you clickedddd");

            this.collection.setPagination(1, 5);
            this.collection.setNrPages(5);

            this.collection.reset();
            this.$("#listMessages").empty(); //listMessage is a placeholder for showing data
            this.collection.fetch();
        },
4

1 回答 1

0

Backbone.Paginator 提供了两种主要分页方法的实现——服务器端分页(Backbone.Paginator.requestPager)和客户端分页(Backbone.Paginator.clientPager)。

目前尚不清楚您使用的是哪一个,所以请您提供您收藏的源代码吗?

至于 HTML 模板,我建议您将其更改为以下内容:

<ul class="pagination" id="paginationSelect">

        <li><a id="previous-page" class="page">Previous</a></li>

        <% for(var i = 0; i < 10 ; i++) { %>
                <li><a id="page" class="page"><%= i %></a></li>
        <% } %>

        <li><a id="next-page" class="page">Next</a></li>
  </ul>

并将事件处理程序更新为(如果您使用requestPager):

event : {"click #previous-page" : "previousPage",
         "click #next-page" : "nextPage",
         "click #page" : "page"},

previousPage : function(e) {
  this.collection.requestPreviousPage();
},

nextPage : function(e) {
  this.collection.requestNextPage();
},

page : function() {
  var page = $(e.target).text();
  this.collection.goTo(page);
},

一旦您从集合中调用 requestPreviousPage()、requestNextPage()、goTo(pageNumber) 等方法,Backbone.Paginator 将自动获取所需的数据。

顺便说一句,在插件的 github 示例文件夹中使用Backbone.Paginator.requestPagerBackbone.Paginator.clientPager有很好的例子: Backbone.Paginator,所以你可以看看它们。

请注意:要使示例正常工作,您需要将PaginatedCollection.js中的URL 更改为,https://api.github.com/repos/backbone-paginator/backbone.paginator/issues?因为示例中使用的 URL 不返回任何数据。在客户端分页示例中,您还需要注释掉同一文件中的server_api部分,因此它更像是客户端分页。

于 2013-09-24T09:15:09.370 回答