如何将Json列表项绑定到angularJs中的分页?

时间:2014-11-27 00:23:57

标签: javascript json angularjs

我有大量的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]);
                }
            }
        };

1 个答案:

答案 0 :(得分:1)

在这种情况下的问题是各种选择方法之间的混淆。

如果你看第6页,当选择'恐怖'时,你应该看到“失落的女孩” - 恐怖电影。

基本上,$ scope.filteredItems是过滤器字段选择的项目列表。如果你输入“迷失”进入那个领域,而“恐怖”是这种类型,它似乎会起作用。这是因为,当“过滤器”字段中没有输入任何内容时,您正在搜索所有项目。然后,当您在(例如)第6页上找到一个项目时,它将作为第6页上的项目添加到$ scope.pagedItems数组中。

为了使此功能起作用,您需要修改$ scope.filteredItems列表,以仅选择所选类型中的元素并满足过滤条件。