問題 當從我的RESTful接口(Apigility)請求第3頁的頁面2中分頁的HAL json時,總是返回頁面1的結果。
我的服務器上有一個RESTful api,它將HAL json返回給一個angularjs單頁面應用程序(SPA)。
在頁面上我已經實現了angular-ui bootstrap paginator。這是相關的代碼;
<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,並返回預期結果。
我已經在控制器的getData()函數呼應了當前頁變量,只是讓一臺服務器請求之前,它肯定是設置爲2
任何想法?
$ resource param與傳遞給查詢的參數不匹配。看看開發工具網絡中使用的實際url – charlietfl