【问题标题】:Paging Decorated Collections using Marionette.js使用 Marionette.js 对装饰集合进行分页
【发布时间】:2013-09-30 06:35:17
【问题描述】:

我正在跟上 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 内置的一些简单内容?

感谢任何帮助!

【问题讨论】:

    标签: backbone.js marionette


    【解决方案1】:

    不,Backbone 不会像这样优雅地处理分层集合/模型信息。你所拥有的几乎就是我的做法。

    【讨论】:

    • 我一直在使用backbone-pageable 来管理我的寻呼机,而您所拥有的正是该组件处理它的方式。
    猜你喜欢
    • 1970-01-01
    • 2010-09-05
    • 2015-04-27
    • 2018-05-10
    • 1970-01-01
    • 2017-05-03
    • 2015-09-18
    • 1970-01-01
    相关资源
    最近更新 更多