AngularJS 프런트엔드 페이징 구현

不言
풀어 주다: 2018-07-09 16:10:35
원래의
1635명이 탐색했습니다.

이 글에서는 특정 참조 가치가 있는 AngularJS 프런트엔드 페이징 구현을 주로 소개합니다. 이제 필요한 친구들이 참고할 수 있습니다.

페이징 아이디어#🎜🎜 ##🎜 🎜#평가자 쿼리, 전체 데이터 양이 상대적으로 적기 때문에 페이징을 프론트 데스크에 넣어 처리할 수 있습니다.

사실 페이징의 원리도 매우 간단합니다. 페이징을 위해 선택한 페이지 수와 각 페이지의 데이터 항목 수를 기준으로 현재 표시되는 배열의 항목 수를 결정합니다. 그런 다음 기존 페이징 지침을 전달하여 페이징 매개변수를 구성합니다.

// 初始化分页参数
$scope.pageParams = {
    size: $stateParams.size,      // 每页数据条数
    page: $stateParams.page,      // 页码数
    last: undefined,              // 是否首页
    first: undefined,             // 是否尾页
    totalPages: undefined,        // 总页数
    totalElements: undefined,     // 总数据条数
    numberOfElements: undefined   // 当前页有几条数据
};
로그인 후 복사

이것은 페이징 명령에 필요한 데이터이므로 두 가지 작업이 있습니다. 첫째, 현재 페이지에 표시되어야 하는 데이터를 가로채는 것과 둘째, 매개변수를 생성하여 페이징에 전달하는 것입니다. 명령.

Public method

CommonService에 구현된 마지막 public 메소드입니다.

/**
 * 重新生成分页参数与分页数据
 * @param  {每页数据条数}   size
 * @param  {页码数}        page
 * @param  {全部数据}      data
 * @param  {Function}     callback
 * callback (pageParams, currentPageData)
 * pageParams: 分页的标准
 * currentPageData: 当前页的数据
 */
self.reloadPageParamsAndData = function(size, page, data, callback) {
    // 校验传入的参数
    if (typeof size === 'undefined') {
        throw '未接收到每页数据条数信息';
    }
    if (typeof page === 'undefined') {
        throw '未接收到分页信息';
    }
    if (typeof data === 'undefined') {
        throw '未接收到数据信息';
    }
    // 计算总页数和总数据条数
    var totalPages    = Math.ceil(data.length / size);
    var totalElements = data.length;
    // 计算当前页是否为首页 是否为尾页
    var first = page === 0 ? true : false;
    var last  = page === totalPages - 1 ? true : false;
    // 根据分页参数计算当前页应该显示的数据 slice数组元素分割
    var currentPageData = data.slice(0 + page * size, size + page * size);
    // 获取当前页总共有多少条数据
    var numberOfElements = currentPageData.length;

    // 重新生成分页参数
    var pageParams = {
        size: size,                          // 每页数据条数
        page: page,                          // 页码数
        last: last,                          // 是否首页
        first: first,                        // 是否尾页
        totalPages: totalPages,              // 总页数
        totalElements: totalElements,        // 总数据条数
        numberOfElements: numberOfElements   // 当前页有几条数据
    };

    // 回调
    if (callback) {
        callback(pageParams, currentPageData);
    }
};
로그인 후 복사

현재 페이지의 데이터 가져오기CommonService中的公共方法。

var currentPageData = data.slice(0 + page * size, size + page * size);
로그인 후 복사

获取当前页数据

获取当前页的数据,我们需要知道每页数据条数,页码数即可对数据进行分割。

// 计算总页数和总数据条数
var totalPages    = Math.ceil(data.length / size);
var totalElements = data.length;
// 计算当前页是否为首页 是否为尾页
var first = page === 0 ? true : false;
var last  = page === totalPages - 1 ? true : false;
// 获取当前页总共有多少条数据
var numberOfElements = currentPageData.length;
로그인 후 복사

对数据进行分割,数据应该是从0size,加上page * size就是之前的页数中的数据量。

构建分页参数

<yunzhi-page></yunzhi-page>
로그인 후 복사

数据总数除以每页数据条数向上取整得到总页数。

如果页数为0,则为首页;如果页数为总页数减1

현재 페이지의 데이터를 가져오려면 각 페이지의 데이터 항목 수와 페이지 번호를 알아야 합니다. 데이터를 분할합니다.

rrreeeAngularJS 프런트엔드 페이징 구현 데이터를 분할합니다. 데이터는 0부터 size까지여야 하며, page * size는 이전 값이어야 합니다. 페이지 수의 데이터 양입니다.

페이징 매개변수 구축

rrreee

총 데이터 수를 페이지당 데이터 항목 수로 나누고 반올림하여 총 페이지 수를 구합니다.

페이지 수가 0이면 첫 번째 페이지이고, 전체 페이지에서 1을 뺀 값이면 첫 페이지입니다. 마지막 페이지다. rrreee

위 내용은 모두의 학습에 도움이 되기를 바랍니다. PHP 중국어 웹사이트! 관련 권장 사항:

AngularJS Excel 내보내기 명령

#🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#angularjs 데이터 바인딩#🎜🎜##🎜🎜##🎜 🎜#

위 내용은 AngularJS 프런트엔드 페이징 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿