AngularJS md-data-table上的分页错误

时间:2019-02-16 16:34:18

标签: javascript angularjs pagination angular-template

我目前正在开发一个应用程序,该应用程序从API获取信息,然后在表中显示此数据。我正在使用旧的AngularJS和md-data-table库。我按照说明进行操作,可以进行设置并查看数据。问题出在分页上。当我单击下一步时,它永远不会移动到另一页,也不会更改要显示的行数。

这是HTML

<div id="users">

<md-table-container>
    <table md-table multiple md-progress="promise">
        <thead md-head md-order="query.order" md-on-reorder="getData" class="columns">
            <tr md-row>
                <th md-column md-order-by="" flex="10"><span>Email</span></th>
                <th md-column md-numeric md-order-by="" flex="20"><span>Insurance</span></th>
                <th md-column md-numeric flex="20">Policies</th>
                <th md-column md-numeric flex="20">Status</th>
                <th md-column md-numeric flex="10">Extra</th>
            </tr>
        </thead>
        <tbody md-body>
            <tr md-row ng-repeat="user in users | orderBy:'-policyId'">
                <td md-cell flex="10">{{user.email}}</td>
                <td md-cell flex="20">{{user.insuranceName}}</td>
                <td md-cell flex="20"><button class="action-button" ng-click="downloadPolicy(user.policyUrl)" download="user.policyUrl"
                    ng-href="user.policyUrl">Download</button></td>
                <td md-cell flex="20">{{user.status}}</td>
                <td md-cell class="more" flex="10"><md-menu>
                <div ng-click="openMenu($mdMenu, $event)">
                    Ver Más
                </div>
                <md-menu-content>
                    <md-menu-item ng-hide="!user.isPending">
                        <md-button ng-click="details(user.policyId)">
                            <span class="opt-btn">Add Details</span>
                        </md-button>
                    </md-menu-item>
                    <md-menu-item ng-hide="user.isPending">
                        <md-button ng-click="edit(user.policyId)">
                            <span class="opt-btn">Edit</span>
                        </md-button>
                    </md-menu-item>
                </md-menu-content>
            </md-menu></td>
            </tr>
        </tbody>
    </table>
</md-table-container>

<md-table-pagination md-limit="query.limit" md-limit-options="[5, 10, 15]" md-page="query.page"
    md-total="{{users.length}}" md-on-paginate="getData" md-page-select></md-table-pagination>

这是控制器

$scope.users = [];
$scope.totalUsers = 0;
$scope.query = {
    order: 'name',
    limit: 5,
    page: 1
};

var getData = function(){
    console.log("Get data");
    $http({
        method: 'GET',
        url: config.apiUrl+'/policy/all'
    }).then(function successCallback(response) {
        var currentData = response.data
        for(var i=0; i < currentData.length; i++) {
            var current = currentData[i];
            if(current.isPending === true) {
                current.status = "Pending";
            } else if(current.availableUpgrades === false) {
                current.status = "Upgrades Available";
            } else if(current.availableUpgrades === true) {
                current.status = "No Upgrades";
            }

        }

        $scope.users = currentData;
        $scope.totalUsers = currentData.length;

    }, function errorCallback(response) {
        console.log(response);

    });
}

什么不起作用?请让我摆脱困境的任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我认为这应该有效

$scope.query = {
    order: 'name',
    limit: 5,
    page: 1
};

$http({
        method: 'GET',
        url: config.apiUrl+'/policy/all'
    }).then(function successCallback(response) {
        var currentData = response.data
        for(var i=0; i < currentData.length; i++) {
            var current = currentData[i];
            if(current.isPending === true) {
                current.status = "Pending";
            } else if(current.availableUpgrades === false) {
                current.status = "Upgrades Available";
            } else if(current.availableUpgrades === true) {
                current.status = "No Upgrades";
            }

        }

        $scope.users = currentData;
        $scope.totalUsers = currentData.length;

    }, function errorCallback(response) {
        console.log(response);

    });
<div id="users">

<md-table-container>
    <table md-table multiple md-progress="promise">
        <thead md-head md-order="query.order" md-on-reorder="getData" class="columns">
            <tr md-row>
                <th md-column md-order-by="" flex="10"><span>Email</span></th>
                <th md-column md-numeric md-order-by="" flex="20"><span>Insurance</span></th>
                <th md-column md-numeric flex="20">Policies</th>
                <th md-column md-numeric flex="20">Status</th>
                <th md-column md-numeric flex="10">Extra</th>
            </tr>
        </thead>
        <tbody md-body>
            <tr md-row ng-repeat="user in users | orderBy:'-policyId'">
                <td md-cell flex="10">{{user.email}}</td>
                <td md-cell flex="20">{{user.insuranceName}}</td>
                <td md-cell flex="20"><button class="action-button" ng-click="downloadPolicy(user.policyUrl)" download="user.policyUrl"
                    ng-href="user.policyUrl">Download</button></td>
                <td md-cell flex="20">{{user.status}}</td>
                <td md-cell class="more" flex="10"><md-menu>
                <div ng-click="openMenu($mdMenu, $event)">
                    Ver Más
                </div>
                <md-menu-content>
                    <md-menu-item ng-hide="!user.isPending">
                        <md-button ng-click="details(user.policyId)">
                            <span class="opt-btn">Add Details</span>
                        </md-button>
                    </md-menu-item>
                    <md-menu-item ng-hide="user.isPending">
                        <md-button ng-click="edit(user.policyId)">
                            <span class="opt-btn">Edit</span>
                        </md-button>
                    </md-menu-item>
                </md-menu-content>
            </md-menu></td>
            </tr>
        </tbody>
    </table>
</md-table-container>

<md-table-pagination md-limit="query.limit" md-limit-options="[5, 10, 15]" md-page="query.page"
    md-total="{{users.length}}" md-on-paginate="getData" md-page-select></md-table-pagination>