Backbone JS Pagination

seo*_*ady 5 backbone.js

我一直在试用带有rails的主干JS,并且非常喜欢它组织前端的方式.我已经实现了类似于https://gist.github.com/705733的分页解决方案

我只是想知道集合的作用是什么以及如何处理分页结果.目前,似乎当我从数据库中获取新对象时,它们会覆盖当前集合中的内容.但是,我可以使用{add:true}添加到当前集合.这将使分页更加困难.那缓存结果怎么样?我应该为每个页面创建一个新的集合吗?

如果有人这样做或知道如何去做将会有很大的帮助.

dir*_*ira 11

如果您的目标是在请求页面时查询和显示项目,您可以执行类似(伪代码)的操作:

pages = {}


// when page N is needed
function fetch_page(n) {
 if (!pages[n]) {
    pages[n] = new ItemsCollection({page: n})
    pages[n].fetch();
 }     
}
Run Code Online (Sandbox Code Playgroud)

所以你为每个页面保留一个集合.

如果您还需要收集到目前为止所提取的所有项目,请保留一个 - 并在每次从服务器获取时添加已获取的项目.

  • 嘿谢谢dira,我最终将它们添加到单个集合中,并使用Underscore来获取基于每页的最后(n)个元素.干得好吃! (4认同)