亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用AngularJS怎么實現前臺分頁

發布時間:2021-04-07 17:34:20 來源:億速云 閱讀:252 作者:Leah 欄目:web開發

本篇文章給大家分享的是有關使用AngularJS怎么實現前臺分頁,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

其實分頁的原理也很簡單,我們根據分頁選擇的頁碼數和每頁數據條數決定當前顯示的是數組中的第多少項到多少項,然后再構造分頁的參數傳入已有的分頁指令。

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

這是我們的分頁指令要的數據,所以我們就是兩個任務,第一,截取當前頁應該顯示的數據,第二生成參數傳給分頁指令。

這是最后實現的CommonService中的公共方法。

/**
 * 重新生成分頁參數與分頁數據
 * @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);
  }
};

獲取當前頁數據

獲取當前頁的數據,我們需要知道每頁數據條數,頁碼數即可對數據進行分割。

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

對數據進行分割,數據應該是從0size,加上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;

數據總數除以每頁數據條數向上取整得到總頁數。

如果頁數為0,則為首頁;如果頁數為總頁數減1,則為尾頁。

<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>

使用AngularJS怎么實現前臺分頁

以上就是使用AngularJS怎么實現前臺分頁,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昭觉县| 拜城县| 建始县| 扎鲁特旗| 冷水江市| 紫金县| 调兵山市| 阳高县| 邻水| 沛县| 汉源县| 扎赉特旗| 布尔津县| 琼海市| 梨树县| 德格县| 洛浦县| 庆元县| 永丰县| 蓬溪县| 宜君县| 新宾| 隆化县| 抚松县| 桐乡市| 安图县| 凤台县| 长乐市| 东乌珠穆沁旗| 炎陵县| 滨州市| 泰来县| 大荔县| 天峨县| 盐城市| 鸡西市| 淮阳县| 开阳县| 白山市| 上高县| 彭阳县|