您好我试着弄清楚如何使用
angularjs进行服务器端分页.
我有两个网络服务:
localhost:8080 / app / api / period方法GET返回json实体列表.当参数传递页码时,开始时间范围和停止时的范围.
localhost:8080 / app / api / period / count方法GET返回句点计数.当参数通过启动周期范围和停止时的范围.
this.tableParams = new ngTableParams({ page: 1,count: 10 },{ counts: [10],total: 0,getData: function($defer,params) { $http.get('/app/api/period',{params: { pageNumber:params.page() - 1,rangeStart:rangeStart,rangeStop:rangeStop}}) .success(function(data,status) { params.total($http.get('/app/api/period/count',{params: { rangeStart:rangeStart,rangeStop:rangeStop}})); $defer.resolve(data); }); } });
表params.total未进行核心更新,因此会显示表中的数据,但不会显示分页按钮.
有没有人可以解释我如何在其他$http.get的成功监听器中使用$http.get来获得正确设置的params.total.
你没有看到分页按钮,因为你的get()可能会因为你在服务器端的“rangeStart”,“rangeStop”限制而返回10,如果你从10个总数中返回10个结果,则没有任何分页.
原文链接:https://www.f2er.com/ajax/159863.html每个请求可以返回10个结果,但params.total应该始终是所有结果的计数.
无论如何你不需要2个get()调用,你可以用这样的方式返回它:D
{ "results": [ { "id": "1437","task_started_at": "2014-06-09 12:25:25","task_finished_at": "2014-06-09 12:25:25" },{ "id": "1436","task_started_at": "2014-06-09 12:26:31","task_finished_at": "2014-06-09 12:26:31" } ],"total": 1027 }
你的代码看起来像这样:
params.total(data.total); $defer.resolve(data.results);
而且你也不需要总数,因为你会从服务员那里得到它所以删除:
total: 0;
this.tableParams = new ngTableParams({ page: 1,{ getData: function($defer,status) { params.total($http.get('/app/api/period/count')); $defer.resolve(data); }); } });
其中$http.get(‘/ app / api / period / count’)返回1234等记录总数
祝好运