我有大量的Json数据,我把它安排在我的页面中。我也使用了分页。我在我的页面中获取Json列表,但问题是,生成列表。我有类别(动画,喜剧,迷你系列等)。当我的页面第一次加载时,列表框显示(全部) - 然后一切都很好但是当我在列表框中选择类别时,数据显示不正确。
每个页面都应显示受限制的pageSize(4)。当" All"被选中。
其他列表项(动画,喜剧,迷你系列等)未正确限制在pageSize中,并且分页长度不会减少 这个类别。
特别是当我选择"恐怖"时,它没有显示任何内容。请帮忙。
plnkr link 如果没有加载json数据,请等待几秒钟。
// calculate page in place
$scope.groupToPages = function () {
$scope.pagedItems = [];
for (var i = 0; i < $scope.filteredItems.length; i++) {
if (i % $scope.pageSize === 0) {
$scope.pagedItems[Math.floor(i / $scope.pageSize)] = [ $scope.filteredItems[i] ];
} else {
$scope.pagedItems[Math.floor(i / $scope.pageSize)].push($scope.filteredItems[i]);
}
}
};
答案 0 :(得分:1)
在这种情况下的问题是各种选择方法之间的混淆。
如果你看第6页,当选择'恐怖'时,你应该看到“失落的女孩” - 恐怖电影。
基本上,$ scope.filteredItems是过滤器字段选择的项目列表。如果你输入“迷失”进入那个领域,而“恐怖”是这种类型,它似乎会起作用。这是因为,当“过滤器”字段中没有输入任何内容时,您正在搜索所有项目。然后,当您在(例如)第6页上找到一个项目时,它将作为第6页上的项目添加到$ scope.pagedItems数组中。
为了使此功能起作用,您需要修改$ scope.filteredItems列表,以仅选择所选类型中的元素并满足过滤条件。