使用Marionette.js分页装饰系列

时间:2013-09-29 22:23:58

标签: backbone.js marionette

我正在快速使用Backbone和Marionette,并遇到了障碍。基本上,我从用于集合的API中获得的结果集被“包装”在分页数据中,如下所示:

{PageSize:10,PageIndex:0,TotalItems:100,Items:[...]}

基本上真正的集合是Items:[]数组。我知道我可以从结果中使用这个集合,但是我需要view / pager UI的分页数据。

我尝试了几件事,我的主要解决方案现在扩展了现有的集合

PagedCollection = Backbone.Collection.extend(
    {        
    pageSize: 0,
    pageIndex: 0,
    totalItems: 0,
    parse:function(data) {
        this.pageSize = data.PageSize;
        this.pageIndex = data.PageIndex;
        this.totalItems = data.TotalItems;
        return data.Items;
    }
});

然后在我的复合视图中,我将分页信息提取到模型属性中,这样我就可以访问模板中的分页信息(这是主要问题):

var LogView = Backbone.Marionette.CompositeView.extend({
    initialize:function() {
        this.model = new Backbone.Model({pageSize:this.collection.pageSize,pageIndex:this.collection.pageIndex,totalItems:this.collection.totalItems});
    },
    template: "#log-view",
    itemView: LogRowView,
    itemViewContainer: "tbody"
 });

我的问题是这是正确的/正确的方法,还是我遗漏了Backbone或Marionette内置的简单内容?

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

不,Backbone不会像这样优雅地处理分层收集/模型信息。你所拥有的就是我如何做到的。