$resource 总是返回分页数据的第 1 页

$resource always returning page 1 of paginated data

问题 从我的 RESTful 接口 (Apigility) 请求分页 HAL json 的 3 页中的第 2 页时,始终返回第 1 页的结果。

我的服务器上有一个 RESTful api returns HAL json angularjs 单页应用程序 (SPA)。

在一个页面上,我实现了 angular-ui bootstrap 分页器。这是相关代码;

<pagination direction-links="false" boundary-links="true" total-items="FooCtrl.totalItems" items-per-page="Footrl.itemsPerPage" ng-model="Foo.currentPage" ng-change="Foo.changePage()"></pagination>

SPA 与控制器通信,如下所示;

angular.module('FooApp')
.controller('FooCtrl', ['$scope', 'FooApi', function($scope, FooApi) {

    var self                    = this;

    // Holds HalJson for use in pagination
    var halJson                 = {};
    self.currentPage;
    self.numPages;
    self.totalItems;
    self.itemsPerPage           = 25;


    // List of pools that have already been created
    self.foos                   = [];
    getData();


    self.changePage             = function() {

        getData();

    }



    function getData() {

        return FooApi.query({"pageNumber": self.currentPage}).$promise
            .then(function(_json) {

                processJson(_json);

            });

    }



    function processJson(halJson) {

        self.foos               = halJson._embedded.foos;
        self.currentPage        = halJson.page;
        self.numPages           = halJson.page_count;
        self.totalItems         = halJson.total_items;

    }


}]);

控制器向服务请求数据,如下所示;

angular.module('FooApp')
.factory('FooApi', ['$resource', function($resource) {

    var self                    = this;
    var url                     =  "www.someurl/foo/:foo_id";

    return $resource( url,{"foo_id":"@foo_id"},
    {
        'query':{
            method:     'GET',
            isArray:    false,
        },
        'update':{
            method:     'PATCH',
            isArray:    false,
        }
    });

}]);

我已经尝试通过邮递员手动点击第 2 页,它 returns 预期的结果。

我在控制器的 getData() 函数中回显了 currentPage 变量,就在发出服务器请求之前,它肯定设置为 2。

有什么想法吗?

根据 https://apigility.org/documentation/api-primer/halprimer(集合部分)HAL JSON 需要一个 "page=" 参数。

在控制器的 getData 函数中,您似乎在参数默认值 JSON 中传入了 "pageNumber="。也许这就是问题的原因?