Angularjs 无法读取属性';排序';未定义的

Angularjs 无法读取属性';排序';未定义的,angularjs,ngtable,Angularjs,Ngtable,您好,我是Angular js的新手。我使用Ng Table模块添加pegination,过滤到表中。但当我尝试运行以下代码时,它显示了未定义的排序。但是我发现params未定义,这就是为什么它给我未定义的错误排序 $http({ url:"http://localhost:8080/", dataType:'json', method:'GET', data:'', headers:{ 'C

您好,我是Angular js的新手。我使用Ng Table模块添加pegination,过滤到表中。但当我尝试运行以下代码时,它显示了未定义的排序。但是我发现params未定义,这就是为什么它给我未定义的错误排序

$http({
        url:"http://localhost:8080/",
        dataType:'json',
        method:'GET',
        data:'',
        headers:{
            'Content-type':'application/json'
        }
    }).then(function (response) {
        $scope.tableData = response.data;
        $scope.tableParams = new NgTableParams({
            page: 1,
            count: 5
        }, {
            total: $scope.tableData.length,

            getData: function ($defer, params) {
                console.log(params);
                $scope.data = params.sorting() ? $filter('orderBy')($scope.tableData, params.orderBy()) : $scope.tableData;

                $scope.data = params.filter() ? $filter('filter')($scope.data, params.filter()) : $scope.data;

                $scope.data = $scope.data.slice((params.page() - 1) * params.count(), params.page() * params.count());

                $defer.resolve($scope.data);
            }
        });
    });
问我如何使它在angularjs1.6.1.js中正常工作?

当我把下面的代码,它的作品完美,但没有过滤器没有排序

    $scope.tableParams = new NgTableParams({
            page:1,
            count:5
        }, {
            getData: function(params) {
                params.total($scope.tableData.length);
                return $scope.tableData.slice((params.page() - 1) * params.count(), params.page() * params.count());
            }
        }
    );

要在angularjs中使用排序,需要将$filter作为依赖项注入

app.controller('TutorialController', function ($scope, $filter, ngTableParams) {

您的
params
值未定义,请检查原因。我如何检查@felixmoshI发现我从第一个示例代码中删除了$defer,然后params工作,但我遇到了另一个问题,$filter未定义如何解决此问题?我没有在控制器中注入$filter依赖项。我得到了答案我还有一个问题,先生。getData:function(params,$defer){console.log(params);$scope.data=params.sorting()?$filter('orderBy')($scope.tableData,params.orderBy()):$scope.tableData;$scope.data=params.filter()?$filter($scope.data,params.filter()):$scope.data;$scope.data=$scope.data.slice((params.page()-1)*params.count(),params.page()*params.count());$defer.resolve($scope.data);}这段代码在我尝试注入$defer时看不到它,而且会出现错误