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