uib-pagination参数介绍:
boundary-link:是否显示第一页和最后一页的按钮,默认为false。
boundary-link-numbers:是否显第一页和最后一页的页数,并在页数过多时用“…”表示被隐藏页数,默认为false。
direction-links:是否显示上一页和下一页按钮,默认为true。
first-text:第一页按钮名字,默认为first。
last-text:最后一页按钮名字,默认为last。
previous-text:上一页按钮名字,默认Previous。
next-text:下一页按钮名字,默认为Next。
rotate:是否保持当前在可视范围中间,默认为true。
force-ellipse:是否在rotate被设置为true并且页数过多时显示为“…”,默认为false。
items-per-page:每页显示数量(条数),默认为10。设置值小于1表示显示所有项。
max-size:可选择的页数范围,默认为null。如果设置为5,当前页为10,总页数为100,可选页数范围为8、9、10、11、12页。
ng-change:页数变化时调用的函数。
ng-disabled:是否禁用,默认为false。
ng-model:当前页数。
total-items:总共有多少条数据。
项目中,需要缓存当前选择的页码,已做全局缓存,但是设置不成功.
每次进入无论设置变量设置为什么,都会被初始化为 1 .且还会触发onchange事件重新调用查询一次.
后来考虑为分页组件在渲染前页面已经渲染,设置页码的赋值还没执行,分页组件也给pageNum赋值一次.
粗暴解决
用ng-if,当列表list查询出结果之后再去渲染分页组件
ng-if="list && list.length !==0"
<div ng-if="list && list.length !==0" class="pagination-bar">
<uib-pagination total-items="centerControl.total" ng-model="search.pageNum" max-size="5"
items-per-page="search.pageSize" previous-text="上一页" next-text="下一页" boundary-link-numbers="true"
ng-change="onPageChange()"></uib-pagination>
<div class="totalPage">
当前 {{ search.pageNum }} / {{ centerControl.pages }} 页,共 {{ centerControl.total }} 条
</div>
</div>