'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;
}
});
}
我正在使用grails-arrest-plugin并且遇到了绊脚石所以任何建议都值得赞赏:
所以上面是我的控制器调用 - 我有一些注释尝试将信息重新分页 - 按过滤命令。
到目前为止,我已经尝试半分页尝试工作,如果我使用:$rootScope.numberss=putIt.slice((params.page() - 1) * params.count(), params.page() * params.count());
以上实际上只返回前10个结果但没有页面..
$defer.resolve(putIt.slice((params.page() - 1) * params.count(), params.page() * params.count()));
似乎没有起作用,但是由于DAO是一个休息电话,所以这不是记录的做事方式:
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},
答案 0 :(得分:0)
好的,所以我现在有两种打电话/优点 - 缺点的分页?从我所读到的第一个解释的方法做的更少:
除了修复之外,实际过滤仍然不起作用 - 所以如果有人能指出需要做些什么来修复过滤器那就太棒了:
所以页面初始化
<div data-ng-controller="NumbersCtrl" data-ng-init="getAllNumbers()">
Controller然后对它执行一项功能
$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;
});
};
我最终使用这种方法,因为我没有初始化任何东西:
<div data-ng-controller="NumbersCtrl" >
并调用此控制器操作(根据ngtable的默认指令 - 即它在上述方法中也存在的默认调用:
$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()));
包含此表的html页面在此处调用:
https://github.com/vahidhedayati/testingarrested/blob/master/grails-app/views/numbers/list.gsp
这里的角度控制器:
https://github.com/vahidhedayati/testingarrested/blob/master/web-app/js/NumbersCtrl.js
我将在稍后更新分支,其中包含所有这些 -
所以总结分页工作过滤不是 - 它现在必须是次要的......
编辑:要完成 - 一切正常,我失踪了:
putIt = params.filter ? $filter('filter')( putIt, params.filter()) : putIt;
在第一次putIt下 - 搜索/分页在休息电话中工作