最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

AngularJS 前台分页实现的示例代码

来源:懂视网 责编:小采 时间:2020-11-27 22:13:34
文档

AngularJS 前台分页实现的示例代码

AngularJS 前台分页实现的示例代码:考评员查询,因为整体的数据量比较小,所以我们可以将分页放到前台进行处理。 其实分页的原理也很简单,我们根据分页选择的页码数和每页数据条数决定当前显示的是数组中的第多少项到多少项,然后再构造分页的参数传入已有的分页指令。 // 初始化分页参数 $
推荐度:
导读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 前台分页实现的示例代码:考评员查询,因为整体的数据量比较小,所以我们可以将分页放到前台进行处理。 其实分页的原理也很简单,我们根据分页选择的页码数和每页数据条数决定当前显示的是数组中的第多少项到多少项,然后再构造分页的参数传入已有的分页指令。 // 初始化分页参数 $
推荐度:
标签: 实现 js 代码
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top