【发布时间】:2015-09-28 07:08:36
【问题描述】:
编辑已修复:关于使用此模块通过 ajax 加载数据并进行排序、过滤和分页工作有一个不相关的注释。与 99.9% 的使用对象数组的示例相比,它需要额外的步骤。如果你已经让它像这样工作,那就更糟了,因为你假设智能表可以处理所有事情。没有。
原问题:
谁能帮我弄清楚为什么表格在第 2 页和第 4 页上跳过了。我创建了一个 plunker 并使用了大量的 cmets,如果你在控制台中观看它会显示流入的数据和被过滤掉。排序和搜索工作,“过滤”数组中有数据,我可以通过搜索甚至排序找到第 2 页和第 4 页的数据,但不能通过单击第 2 页或第 4 页。
http://plnkr.co/edit/LVDvjjO6NGGjlBBQEIed?p=preview
这是没有评论疯狂的工厂:
app.factory('mongodbApi', function($http, $q, $filter) {
// CAN ADD OTHER APIs HERE TO TEST OUTSIDE OF
// EXPRESS.JS
// GET
var getRecords = function(url, start, number, params) {
var defer = $q.defer();
$http.get(url)
.success(function(res) {
var filtered = params.search.predicateObject ? $filter('filter')(res, params.search.predicateObject) : res;
if (params.sort.predicate) {
filtered = $filter('orderBy')(filtered, params.sort.predicate, params.sort.reverse);
}
result = filtered.slice(start, start + number)
// why is this skipping 5 items?
defer.resolve({
data: result,
numberOfPages: Math.ceil(res.length / number)
});
})
.error(function(err) {
defer.reject(err);
});
return defer.promise;
};
return {
getRecords: getRecords,
};
});
【问题讨论】:
标签: angularjs ajax pagination