AngularJS 테이블 페이지 나누기
6007 단어 웹 프런트엔드
Paginator 플랜트 함수는 다음과 같습니다.
var servicesapp = angular.module('services', []);
servicesapp.factory('Paginator', function() {
// , Paginator。 function,
return function(ds) {
var paginator = {
hasNextVar : false,
next: function() {
if(this.hasNextVar) {
this.currentOffset += this.pageSize;
this._load();
}
},
_load: function() {
/* */
if(isFunction(ds)){
var self = this;
ds(this.currentOffset, this.pageSize, function(response) {
self.currentPageItems = response.data;
self.hasNextVar = (self.currentOffset + self.pageSize) < response.totalCount;
self.totalCount = response.totalCount;
});
}else{
this.totalCount = ds.length;
this.currentPageItems = ds.slice(this.currentOffset, this.currentOffset+this.pageSize);
this.hasNextVar = (this.currentOffset + this.pageSize) < this.totalCount;
}
},
hasNext: function() {
return this.hasNextVar;
},
previous: function() {
if(this.hasPrevious()) {
this.currentOffset -= this.pageSize;
this._load();
}
},
setPageSize: function(){
this.currentOffset = 0;
this.pageSize = Number(this.pageSizeShow);
this._load();
},
setPage: function(){
var maxPage = Math.ceil(this.totalCount/this.pageSize);
if(this.currentPage > maxPage){
alert(' '+maxPage);
return false;
}
this.currentOffset = (this.currentPage - 1) * this.pageSize;
this._load();
},
gotoFirstPage:function(){
this.currentOffset = 0;
this._load();
},
gotoLastPage:function(){
this.currentOffset = (this.getTotalpage()-1)*this.pageSize;
this._load();
},
hasPrevious: function() {
return this.currentOffset !== 0;
},
getTotalpage:function(){
return Math.ceil(this.totalCount/this.pageSize);
},
currentPageItems: [],
currentOffset:0,
totalCount:0,
pageSize:10,
pageSizeShow:"10",
currentPage:1
};
//
paginator._load();
return paginator;
};
});
명령 코드는 다음과 같습니다.
servicesapp.directive('pager', ['$rootScope', function($rootScope) {
return {
restrict: 'A',
scope:{__paginator:'=pageInstance'},
template:
' {{__paginator.totalCount}} , '+
''+
' | :{{__paginator.currentOffset/__paginator.pageSize + 1}}/{{__paginator.getTotalpage()}} ,{{__paginator.currentOffset+1}}~{{(__paginator.currentOffset+__paginator.pageSize)>(__paginator.totalCount)?__paginator.totalCount:__paginator.currentOffset+__paginator.pageSize}} | '+
''+
''+
''+
''+
''+
'',
link: function(scope, element, attrs) {
}
};
}]);
controller 코드는 다음과 같습니다.
var app = angular.module('pagedemo', ['services']);
app.controller('page1', function($scope, $http, Paginator) {
$scope.query = 'Testing';
var fetchFunction = function(offset, limit, callback) {
$http.get(getActionUrl('fatap/demo/page'), {params:{query:$scope.query, offset: offset, limit: limit}}).success(callback);
};
$scope.paginator = Paginator(fetchFunction);
$scope.paginator2 = Paginator(fetchFunction);
});
상기 코드에서 Paginator의 매개 변수는 데이터를 가져오는 함수입니다. 반환값 데이터 형식은 {totalCount:2, 데이터: [{}, {}]}입니다.또한 데이터 필드를 전방에서 페이지로 직접 전달할 수 있다. 실현 방식은 Paginator 공장 방법과 같고 데이터 파라미터를 전달하는 데이터 형식은 [{}, {}]과 같다.
html 코드 세그먼트는 다음과 같습니다.
IPv4-
MAC-
{{lease.hostname}}
{{lease.ipaddr}}
{{lease.macaddr}}
{{lease.expires}}
page-instance pageInstance , 。
http://bijian1013.iteye.com/blog/2111118, 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
highcharts 데이터 테이블 설정 두 가지 등효 방식의 쓰기텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.