Hello allmighty community,
我正在尝试将bbGrid与backbone-pageable一起使用。我已经设法让分页工作,我可以将页面和per_page发送到服务器,bbGrid显示正确的项目数和页码。但我不能让分页在网格中工作,因为我的集合没有返回正确的长度值。
这是我的收藏:
define([
'backbone-pageable',
'models/DeliveryModel'
], function(BackbonePageable, DeliveryModel) {
var DeliveryCollection = Backbone.PageableCollection.extend({
model : DeliveryModel,
url : '/UIServices/rs/material/v1/deliveries',
// Parse server response to handle total number of items
parseState: function (resp, queryParams, state, options) {
return {totalRecords : parseInt(options.xhr.getResponseHeader("X-Result-Counter"))};
}
});
return DeliveryCollection;
});
我希望collection.length返回X-Result-Counter的值,但它总是返回per_page的值。我错过了什么?
答案 0 :(得分:2)
collection.length
返回集合中包含的模型的长度。在这种情况下,它是per_page
长度,因为只有当前页面的模型存储在集合中。
如果您想要检索总长度,则应使用collection.state.totalRecords
。
答案 1 :(得分:0)
经过大量的检查,我得出的结论是bbGrid和骨干可分组合并不是一个好主意。您可能会破解bbGrid处理服务器端分页,但更好的解决方案是更改网格实现。
我决定切换到Backgrid,它与bbGrid几乎一样。我必须为标题列和我自己的选择器构建我自己的搜索框,以便选择每页的项目数,但所有这些只是几行代码。
所以我的推荐是:如果你需要服务器端分页,排序和搜索;在bbGrid之前选择Backgrid!