ajax – ngtable服务器端分页

您好我试着弄清楚如何使用 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个结果,则没有任何分页.

每个请求可以返回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;

最后你的代码与2 get()调用看起来像这样:

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等记录总数

祝好运

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...