我正在快速使用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内置的简单内容?
感谢任何帮助!
答案 0 :(得分:1)
不,Backbone不会像这样优雅地处理分层收集/模型信息。你所拥有的就是我如何做到的。