欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

AngularJS 前臺(tái)分頁(yè)實(shí)現(xiàn)的示例代碼

 更新時(shí)間:2018年06月07日 10:23:47   作者:張喜碩  
本篇文章主要介紹了AngularJS 前臺(tái)分頁(yè)實(shí)現(xiàn)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

考評(píng)員查詢,因?yàn)檎w的數(shù)據(jù)量比較小,所以我們可以將分頁(yè)放到前臺(tái)進(jìn)行處理。

其實(shí)分頁(yè)的原理也很簡(jiǎn)單,我們根據(jù)分頁(yè)選擇的頁(yè)碼數(shù)和每頁(yè)數(shù)據(jù)條數(shù)決定當(dāng)前顯示的是數(shù)組中的第多少項(xiàng)到多少項(xiàng),然后再構(gòu)造分頁(yè)的參數(shù)傳入已有的分頁(yè)指令。

// 初始化分頁(yè)參數(shù)
$scope.pageParams = {
  size: $stateParams.size,   // 每頁(yè)數(shù)據(jù)條數(shù)
  page: $stateParams.page,   // 頁(yè)碼數(shù)
  last: undefined,       // 是否首頁(yè)
  first: undefined,       // 是否尾頁(yè)
  totalPages: undefined,    // 總頁(yè)數(shù)
  totalElements: undefined,   // 總數(shù)據(jù)條數(shù)
  numberOfElements: undefined  // 當(dāng)前頁(yè)有幾條數(shù)據(jù)
};

這是我們的分頁(yè)指令要的數(shù)據(jù),所以我們就是兩個(gè)任務(wù),第一,截取當(dāng)前頁(yè)應(yīng)該顯示的數(shù)據(jù),第二生成參數(shù)傳給分頁(yè)指令。

這是最后實(shí)現(xiàn)的CommonService中的公共方法。

/**
 * 重新生成分頁(yè)參數(shù)與分頁(yè)數(shù)據(jù)
 * @param {每頁(yè)數(shù)據(jù)條數(shù)}  size
 * @param {頁(yè)碼數(shù)}    page
 * @param {全部數(shù)據(jù)}   data
 * @param {Function}   callback
 * callback (pageParams, currentPageData)
 * pageParams: 分頁(yè)的標(biāo)準(zhǔn)
 * currentPageData: 當(dāng)前頁(yè)的數(shù)據(jù)
 */
self.reloadPageParamsAndData = function(size, page, data, callback) {
  // 校驗(yàn)傳入的參數(shù)
  if (typeof size === 'undefined') {
    throw '未接收到每頁(yè)數(shù)據(jù)條數(shù)信息';
  }
  if (typeof page === 'undefined') {
    throw '未接收到分頁(yè)信息';
  }
  if (typeof data === 'undefined') {
    throw '未接收到數(shù)據(jù)信息';
  }
  // 計(jì)算總頁(yè)數(shù)和總數(shù)據(jù)條數(shù)
  var totalPages  = Math.ceil(data.length / size);
  var totalElements = data.length;
  // 計(jì)算當(dāng)前頁(yè)是否為首頁(yè) 是否為尾頁(yè)
  var first = page === 0 ? true : false;
  var last = page === totalPages - 1 ? true : false;
  // 根據(jù)分頁(yè)參數(shù)計(jì)算當(dāng)前頁(yè)應(yīng)該顯示的數(shù)據(jù) slice數(shù)組元素分割
  var currentPageData = data.slice(0 + page * size, size + page * size);
  // 獲取當(dāng)前頁(yè)總共有多少條數(shù)據(jù)
  var numberOfElements = currentPageData.length;

  // 重新生成分頁(yè)參數(shù)
  var pageParams = {
    size: size,             // 每頁(yè)數(shù)據(jù)條數(shù)
    page: page,             // 頁(yè)碼數(shù)
    last: last,             // 是否首頁(yè)
    first: first,            // 是否尾頁(yè)
    totalPages: totalPages,       // 總頁(yè)數(shù)
    totalElements: totalElements,    // 總數(shù)據(jù)條數(shù)
    numberOfElements: numberOfElements  // 當(dāng)前頁(yè)有幾條數(shù)據(jù)
  };

  // 回調(diào)
  if (callback) {
    callback(pageParams, currentPageData);
  }
};

獲取當(dāng)前頁(yè)數(shù)據(jù)

獲取當(dāng)前頁(yè)的數(shù)據(jù),我們需要知道每頁(yè)數(shù)據(jù)條數(shù),頁(yè)碼數(shù)即可對(duì)數(shù)據(jù)進(jìn)行分割。

var currentPageData = data.slice(0 + page * size, size + page * size);

對(duì)數(shù)據(jù)進(jìn)行分割,數(shù)據(jù)應(yīng)該是從0size,加上page * size就是之前的頁(yè)數(shù)中的數(shù)據(jù)量。

構(gòu)建分頁(yè)參數(shù)

// 計(jì)算總頁(yè)數(shù)和總數(shù)據(jù)條數(shù)
var totalPages  = Math.ceil(data.length / size);
var totalElements = data.length;
// 計(jì)算當(dāng)前頁(yè)是否為首頁(yè) 是否為尾頁(yè)
var first = page === 0 ? true : false;
var last = page === totalPages - 1 ? true : false;
// 獲取當(dāng)前頁(yè)總共有多少條數(shù)據(jù)
var numberOfElements = currentPageData.length;

數(shù)據(jù)總數(shù)除以每頁(yè)數(shù)據(jù)條數(shù)向上取整得到總頁(yè)數(shù)。

如果頁(yè)數(shù)為0,則為首頁(yè);如果頁(yè)數(shù)為總頁(yè)數(shù)減1,則為尾頁(yè)。

復(fù)制代碼 代碼如下:
<yunzhi-page reload="reloadByPage" total-pages="pageParams.totalPages" total-elements="pageParams.totalElements" first="pageParams.first" last="pageParams.last" number="pageParams.page" size="pageParams.size" number-of-elements="pageParams.numberOfElements"></yunzhi-page>


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • angularJs復(fù)選框checkbox選中進(jìn)行ng-show顯示隱藏的方法

    angularJs復(fù)選框checkbox選中進(jìn)行ng-show顯示隱藏的方法

    今天小編就為大家分享一篇angularJs復(fù)選框checkbox選中進(jìn)行ng-show顯示隱藏的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Angular中樣式綁定解決方案

    Angular中樣式綁定解決方案

    這篇文章主要介紹了Angular中樣式綁定解決方案,使用ngClass和ngStyle可以進(jìn)行樣式的綁定,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • AngularJS基礎(chǔ)學(xué)習(xí)筆記之指令

    AngularJS基礎(chǔ)學(xué)習(xí)筆記之指令

    指令(Directives)是所有AngularJS應(yīng)用最重要的部分。盡管AngularJS已經(jīng)提供了非常豐富的指令,但還是經(jīng)常需要?jiǎng)?chuàng)建應(yīng)用特定的指令。這篇教程會(huì)為你講述如何自定義指令,以及介紹如何在實(shí)際項(xiàng)目中使用。
    2015-05-05
  • angular2中router路由跳轉(zhuǎn)navigate的使用與刷新頁(yè)面問題詳解

    angular2中router路由跳轉(zhuǎn)navigate的使用與刷新頁(yè)面問題詳解

    這篇文章主要給大家介紹了angular2中router路由跳轉(zhuǎn)navigate的使用與刷新頁(yè)面問題的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • AngularJS HTML編譯器介紹

    AngularJS HTML編譯器介紹

    這篇文章主要介紹了AngularJS HTML編譯器介紹,AngularJS的HTML編譯器能讓瀏覽器識(shí)別新的HTML語(yǔ)法。它能讓你將行為關(guān)聯(lián)到HTML元素或者屬性上,甚至能讓你創(chuàng)造具有自定義行為的新元素,需要的朋友可以參考下
    2014-12-12
  • AngularJS中指令的四種基本形式實(shí)例分析

    AngularJS中指令的四種基本形式實(shí)例分析

    這篇文章主要介紹了AngularJS中指令的四種基本形式,結(jié)合實(shí)例形式分析了AngularJS指令的定義、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-11-11
  • AngularJS 模塊詳解及簡(jiǎn)單實(shí)例

    AngularJS 模塊詳解及簡(jiǎn)單實(shí)例

    本文主要介紹AngularJS 模塊,這里幫大家整理了相關(guān)資料,詳細(xì)介紹了AngularJS的基礎(chǔ)知識(shí),有需要的朋友可以參考下
    2016-07-07
  • Angular2學(xué)習(xí)筆記——詳解NgModule模塊

    Angular2學(xué)習(xí)筆記——詳解NgModule模塊

    這篇文章主要介紹了Angular2學(xué)習(xí)筆記——詳解NgModule模塊,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • 詳解AngularJS中的表達(dá)式使用

    詳解AngularJS中的表達(dá)式使用

    這篇文章主要介紹了詳解AngularJS中的表達(dá)式使用,包括處理數(shù)字和字符串等各種對(duì)象的操作,需要的朋友可以參考下
    2015-06-06
  • AngularJs  Creating Services詳解及示例代碼

    AngularJs Creating Services詳解及示例代碼

    本文主要介紹AngularJs Creating Services的知識(shí)資料,這里整理了詳細(xì)的資料及簡(jiǎn)單示例代碼,有需要的小伙伴可以參考下
    2016-09-09

最新評(píng)論