前提是,你初始化方法,和搜索方法不是同一个。这里是不同的情况下。
拿到插件后直接用,高兴的很
<el-pagination
ref=pagination
@size-change=“handleSizeChange”
@current-change=“handleCurrentChange”
:current-page.sync=“currentPage1”
:page-size=“100”
layout=“total, prev, pager, next”
:total=“1000”>
然后,自己测试过了,没问题
然后,测试找了一堆BUG过来
简简单单一个分页,就出现这么多问题。。。
其中一个问题。
“点击N页后(非第一页) --搜索某个参数,然后返回的结果又有N页”
BUG:1,返回回来的N页点击失效。2,查询回来后,去除搜索框字段,再点击分页,也失效。
解决办法,初始化init的时候调用的pageNum 和pageSize,用公用的.
然后搜索的时候,默认pageNum为1.size为你的自定义。
同时,如果有地方需要调用初始方法,需要做一个深拷贝搜索值的步骤
前提:插件有ref=pagination
设置返回值第一页
this.$nextTick(() =>{
this.$refs.pagination.internalCurrentPage=1;
});
然后把搜索值拷贝去属性
this.searchName = JSON.parse(JSON.stringify(this.searchValue));
在AJAX传的参数变成searchName;
做完这些,你会发现还是有问题。
点击N页–搜索返回N页,然后再点击N页的某一个对象,修改保存,保存成功,但是页面没刷新,虽然调用了刷新方法。
原因是有可能你更改了对象名称,而你搜索的又是那个名称,所以,返回值为空,页面有可能不会刷新,这个时候怎么办呢?
答案是在提交成功后,调用搜索方法,而不是初始化方法。
同时值的注意的是,在两个方法结束时有的参数该清空就要都清空一下。