Angular 分页生成错误的页数

问题描述 投票:0回答:1

我很难让 Angular 分页 正常工作。页数好像少了。例如,对于我的一个搜索,返回的结果数是 1005。每页显示 16 个结果,总共应该有 63 页。相反,它会生成 101。我很感激任何关于为什么会发生这种情况以及如何解决的建议。

提前致谢!

<table class="table table-striped results">
                    <thead>
                        <tr>
                            <th ng-repeat="x in json.headers">{{ x }}</th>
                        </tr>
                    <thead>
                    <tbody>
                        <tr ng-repeat="x in filteredResults">
                            <td><a href="#">{{ x.name }}</a></td>
                            <td>{{ x.city }}</td>
                            <td>{{ x.state }}</td>
                            <td>{{ x.zip }}</td>
                            <td>{{ x.phone }}</td>
                        </tr>
                    </tbody>
                    </ul>
                </table>
                <pagination         
                                    style="position:absolute; bottom:10px;"
                                    ng-show="json.results.length"
                                  ng-model="currentPage"
                                  total-items="json.results.length"
                                  max-size="maxSize"  
                                  boundary-links="true"
                                  next-text=">"
                                  last-text=">>"
                                  previous-text="<"
                                  first-text="<<">
                </pagination>

JavaScript

var app = angular.module('myApp', ['ui.bootstrap']);
        app.controller('formCtrl', function($scope, $http){

            $(document).ready(function(){
                $('.submit-search').click(function(){
                    $http.get('model/search_url.php', {
                        params: { searchBy: $scope.user.searchBy, search: $scope.user.search }
                    }).success(function (response){
                        $scope.json = response;
                        $scope.filteredResults = [];
                        $scope.currentPage = 1
                        $scope.numPerPage = 16
                        $scope.maxSize = 5;

                        $scope.$watch("currentPage + numPerPage", function() {
                            var begin = (($scope.currentPage - 1) * $scope.numPerPage);
                            var end = begin + $scope.numPerPage;
                            $scope.filteredResults = $scope.json.results.slice(begin, end);
                        });
                    });
                });
        });
javascript angularjs twitter-bootstrap pagination
1个回答
2
投票

您缺少

items-per-page
,在您的情况下它应该是 16,但由于您没有提供它,因此它设置为每页 10 个项目的默认值。

© www.soinside.com 2019 - 2024. All rights reserved.