我想根据集合在我的页面上实现分页。 每个页面应该包含20个项目,因此第1页需要迭代前20个模型,第2页需要重复20个项目等等。
在这里阅读了一些问题之后,我发现它可以通过下一个方式完成:
_.each(this.collection.slice(startIndex,startIndex+itemsPerPage),function(item) {
console.log(item.get("name"));
});
有更好的方法吗?
答案 0 :(得分:0)
最简单的方法是使用一个插件,例如https://github.com/backbone-paginator/backbone.paginator,它在客户端提供分页(这是你似乎想要做的),以及服务器端分页。
答案 1 :(得分:0)
我一直在使用this one并且效果非常好:
Backbone.Collection.prototype.partialEach = function partialEach(offset, maxItemsPerPage, iterator, context) {
for (var l = this.length; maxItemsPerPage !== 0 && offset < l; offset++) {
var model = this.at(offset);
if(model) {
iterator.call(context, model, offset, this);
maxItemsPerPage--;
}
}
};