【问题标题】:Angular JS serverside Pagination: Pagination controllers are not going to displayAngularjs服务器端分页:分页控制器不会显示
【发布时间】:2015-08-31 02:24:16
【问题描述】:

我正在尝试使用 Angular js 实现服务器端分页。 控制台没有显示任何错误。

这是脚本:

$scope.get_users = function () {
    $scope.tableParams = new ngTableParams({
        page: 1,
        count: 5
    }, {
        getData: function ($defer, params) {
            var start = (params.page() - 1) * params.count();
            var end = params.page() * params.count();
            $http.get('../admin/users/angular_all_users', {
                params: {
                    pageNumber: params.page() - 1,
                    rangeStart: start,
                    rangeStop: end
                }
            }).success(function (data, status) {
                var orderedData = params.sorting() ? $filter('orderBy')(data, params.orderBy()) : data;
                params.total(orderedData.length);
                $defer.resolve(orderedData.slice(start, end));
            });
        }
    });
}

这是我的观点:

Search: <input type="text" ng-model="query" />Page: {{tableParams.page()}} Count: {{tableParams.count()}}
<table ng-table="tableParams" class="table table-striped table-bordered table-hover" id="table_all_users">
    <tbody ng-init="get_users()">
        <tr class="gradeX" ng-repeat="user in $data | filter:query">
            <td width="20%" data-title="'Select'">
                <input type="checkbox" name="list[]" class="chk_all" value="" id="" onclick="uncheck_select_all(this);" />
            </td>
            <td width="35%" data-title="'User Name'" sortable="'username'">{{ user.username }}</td>
            <td width="25%" data-title="'First Name'" sortable="'fname'">{{ user.fname }}</td>
            <td width="25%" data-title="'Last Name'" sortable="'lname'">{{ user.lname }}</td>
            <td width="15%" data-title="'Mobile'" sortable="'mobile'">{{ user.mobile }}</td>
            <td width="15%" data-title="'Email'" sortable="'email'">{{ user.email }}</td>
            <td width="15%" data-title="'Action'"><a title="Edit User" href="#/edit_user/{{user.user_id}}"><span class="fa fa-pencil"></span></a> | <a title="Delete User" id="" style="cursor:pointer;" ng-click="delete_user(user.user_id)"><span class="fa fa-trash-o"></span></a>
            </td>
        </tr>
    </tbody>
</table>

控制器功能:

public function users_count() {
    $id = 1;
    $users_count = $this - > vanesh_model - > get_users_count($id);
    print json_encode($users_count);
}

public function angular_all_users() {
    $pageNumber = $_GET['pageNumber'];

    if (isset($_GET['rangeStop'])) {
        $limit = $_GET['rangeStop'];
    } else {
        $limit = 10;
    }

    $pageNumber = 1;
    $offset = ($pageNumber * $limit) - $limit;

    $id = 1;
    $data['all_users'] = $this - > vanesh_model - > get_all_users($id, $limit, $offset);
    print json_encode($data['all_users']);
}

问题出在哪里? 我怀疑我的控制器功能:angular_all_users() 请提出任何解决方案。

【问题讨论】:

  • 有人注意到我的问题吗?

标签: angularjs codeigniter pagination ngtable


【解决方案1】:

来自链接:http://ng-table.com/#/demo/1-1 您应该在未设置的 tableParams 上设置总属性。

看看下面的代码:

$scope.tableParams = new ngTableParams({
    page: 1,            // show first page
    count: 10           // count per page
}, {

   //This is not set in your code
    total: data.length, // length of data

    getData: function ($defer, params) {
        $defer.resolve(data.slice((params.page() - 1) * params.count(), params.page() * params.count()));
    }
})

【讨论】:

  • 嘿,嗨,现在我已将 ngtable 分页更改为 UI 引导分页。我已经完成了分页,但过滤和排序是客户端。在这种情况下你能帮忙吗?
猜你喜欢
  • 1970-01-01
  • 2015-06-10
  • 2016-05-04
  • 1970-01-01
  • 1970-01-01
  • 2022-11-09
  • 2021-10-06
  • 1970-01-01
相关资源
最近更新 更多