我正在跟上 Backbone 和 Marionette 的速度,但遇到了障碍。基本上,我从用于集合的 API 获得的结果集被“包装”在分页数据中,如下所示:
{PageSize:10,PageIndex:0,TotalItems:100,Items:[...]}
所以本质上真正的集合是Items:[]
数组。我知道我可以从结果中使用这个集合,但我需要视图/寻呼机 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 内置的一些简单的东西?
任何帮助表示赞赏!