我有很多数据,我想分页,所以我每页可以加载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();
},
答案 0 :(得分: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将自动获取所需的数据。
BTW,在插件的github examples文件夹中使用 Backbone.Paginator.requestPager 和 Backbone.Paginator.clientPager 的例子非常好:Backbone.Paginator,所以你可以看看它们。只需注意一点:要使示例正常工作,您需要将 PaginatedCollection.js 中的网址更改为https://api.github.com/repos/backbone-paginator/backbone.paginator/issues?
,因为示例中使用的网址不会返回任何数据。在客户端分页示例中,您还需要在同一文件中注释掉 server_api 部分,因此它更像是客户端分页。