Angularjs 表rest分页筛选器问题
我正在开发grails抓捕插件,遇到了一个绊脚石,因此任何人的建议都值得赞赏: 以上是我的控制器调用-我有一些注释掉的尝试,试图通过过滤将信息重新分页-排序 到目前为止,我已尝试使用半分页来工作,如果我使用:Angularjs 表rest分页筛选器问题,angularjs,grails,ngtable,Angularjs,Grails,Ngtable,我正在开发grails抓捕插件,遇到了一个绊脚石,因此任何人的建议都值得赞赏: 以上是我的控制器调用-我有一些注释掉的尝试,试图通过过滤将信息重新分页-排序 到目前为止,我已尝试使用半分页来工作,如果我使用: 'use strict'; function NumbersCtrl(DAO, $rootScope, $scope, $filter, ngTableParams) { $rootScope.getAllNumbers = function () { //get all
'use strict';
function NumbersCtrl(DAO, $rootScope, $scope, $filter, ngTableParams) {
$rootScope.getAllNumbers = function () {
//get all
$rootScope.errors.errorMessages=[];
DAO.query({appName: $rootScope.appConfig.appName, token: $rootScope.appConfig.token, controller: 'numbers', action: 'list'},
$rootScope.loadingSite=true,
function (result) {
$rootScope.numberss = result;
$scope.tableParams = new ngTableParams({
page: 1, // show first page
count: 10, // count per page
sorting: {
id : 'desc' // initial sorting
}
}, {
total: $rootScope.numberss.length,
getData: function($defer, params) {
var putIt = params.sorting() ? $filter('orderBy')( $rootScope.numberss, params.orderBy()): id;
params.total(putIt.length);
$defer.resolve(putIt.slice((params.page() - 1) * params.count(), params.page() * params.count()));
// $rootScope.numberss = sendIt;
//$rootScope.numberss=putIt.slice((params.page() - 1) * params.count(), params.page() * params.count());
//$defer.resolve(putIt.slice((params.page() - 1) * params.count(), params.page() * params.count()));
//$rootScope.numberss = putIt;
}
});
}
上面的内容实际上只返回前10个结果,没有页面
$rootScope.numberss=putIt.slice((params.page() - 1) * params.count(), params.page() * params.count());
似乎不起作用,但由于DAO是一个rest调用,因此这不是记录在案的处理方式:
$defer.resolve(putIt.slice((params.page() - 1) * params.count(), params.page() * params.count()));
好的,我现在有两种分页方式,一种是调用,另一种是赞成,另一种是反对?据我所知,第一个解释的方法执行的调用较少: 除此之外,修复实际过滤仍不起作用-因此,如果有人能指出修复过滤器需要做什么,那就太好了: 所以页面初始值
use strict';
angular.module('services',['ngResource','ngTable']).
factory('DAO', function($resource){
return $resource('/:appName/:controller/:action',{
format:'json', callback:'JSON_CALLBACK'},{
..
'query': {method:'GET', params:{appName:'@appName', controller:'@controller', action:'@action', token:'@token'}, isArray: true, timeout:20000},
由于我没有初始化任何内容,因此我最终使用了此方法:
$rootScope.getAllNumbers = function () {
//get all
$rootScope.errors.errorMessages=[];
DAO.query({appName: $rootScope.appConfig.appName, token: $rootScope.appConfig.token, controller: 'numbers', action: 'list'},
$rootScope.loadingSite=true,
function (result) {
$rootScope.tableParams = new ngTableParams({
page: 1, // show first page
count: 10, // count per page
sorting: {
id : 'desc' // initial sorting
}
}, {
total: result.length,
getData: function($defer, params) {
$rootScope.numberss = params.sorting() ? $filter('orderBy')(result, params.orderBy()): id;
//params.total(putIt.length);
$defer.resolve($rootScope.numberss.slice((params.page() - 1) * params.count(), params.page() * params.count()));
$rootScope.numberss=($rootScope.numberss.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});
$rootScope.loadingSite=false;
},
function (error) {
$rootScope.errors.showErrors = true;
$rootScope.errors.showServerError = true;
$rootScope.errors.errorMessages.push(''+error.status+' '+error.data);
$rootScope.loadingSite=false;
});
};
实际修复似乎是“延迟”下的最终调用:
$rootScope.tableParams = new ngTableParams({
page: 1, // show first page
count: 10, // count per page
sorting: {
id : 'desc' // initial sorting
}
}, {
getData: function($defer, params) {
DAO.query({appName: $rootScope.appConfig.appName, token: $rootScope.appConfig.token, controller: 'numbers', action: 'list'},
$rootScope.loadingSite=true,
function (result) {
$rootScope.numberss=result;
var putIt = params.sorting() ? $filter('orderBy')($rootScope.numberss, params.orderBy()): id;
params.total(putIt.length);
$defer.resolve(putIt.slice((params.page() - 1) * params.count(), params.page() * params.count()));
$rootScope.numberss=(putIt.slice((params.page() - 1) * params.count(), params.page() * params.count()));
$rootScope.loadingSite=false;
},
function (error) {
$rootScope.errors.showErrors = true;
$rootScope.errors.showServerError = true;
$rootScope.errors.errorMessages.push(''+error.status+' '+error.data);
$rootScope.loadingSite=false;
});
}
});
包含此表的html页面在此调用:
此处的角度控制器:
我将立即更新分支,其中将包含以下所有内容:
因此,要总结分页的工作过滤不-它必须是一些次要的东西现在
编辑:最终确定-一切正常,我错过了:
$defer.resolve($rootScope.numberss.slice((params.page() - 1) * params.count(), params.page() * params.count()));
$rootScope.numberss=($rootScope.numberss.slice((params.page() - 1) * params.count(), params.page() * params.count()));
在first putIt下-搜索/分页在rest调用中工作Get it working将很快更新并给出答案
$rootScope.tableParams = new ngTableParams({
page: 1, // show first page
count: 10, // count per page
sorting: {
id : 'desc' // initial sorting
}
}, {
getData: function($defer, params) {
DAO.query({appName: $rootScope.appConfig.appName, token: $rootScope.appConfig.token, controller: 'numbers', action: 'list'},
$rootScope.loadingSite=true,
function (result) {
$rootScope.numberss=result;
var putIt = params.sorting() ? $filter('orderBy')($rootScope.numberss, params.orderBy()): id;
params.total(putIt.length);
$defer.resolve(putIt.slice((params.page() - 1) * params.count(), params.page() * params.count()));
$rootScope.numberss=(putIt.slice((params.page() - 1) * params.count(), params.page() * params.count()));
$rootScope.loadingSite=false;
},
function (error) {
$rootScope.errors.showErrors = true;
$rootScope.errors.showServerError = true;
$rootScope.errors.errorMessages.push(''+error.status+' '+error.data);
$rootScope.loadingSite=false;
});
}
});
$defer.resolve($rootScope.numberss.slice((params.page() - 1) * params.count(), params.page() * params.count()));
$rootScope.numberss=($rootScope.numberss.slice((params.page() - 1) * params.count(), params.page() * params.count()));
putIt = params.filter ? $filter('filter')( putIt, params.filter()) : putIt;