角度分页会生成错误的页数

时间:2015-04-25 18:01:42

标签: javascript angularjs twitter-bootstrap paging

我很难让Angular paging正常工作。页面数似乎已关闭。例如,对于我的一个搜索,返回的结果数为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);
                        });
                    });
                });
        });

1 个答案:

答案 0 :(得分:2)

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