layui的table参数条件缓存问题

(1)layui的table在render的时候,会将部分参数缓存下来,以至于在开发过程中发现,layui的reload方法似乎有“缓存”的功能.
原因:在某博客发现,table内部是采用的继承的方法.
(2)layui的数据表格如果多个表格在一个页面,每个表格有一个搜索查询的筛选条件,那么每个搜索结果对应的只能刷新一个数据表格

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
如图所示,这部分采用了layui表格渲染多个,但是用的是一个表格容器,这样写的好处:
1、不用创建多个table容器,只需一个,不管你一个页面需要多少个表格,都是可以的,这种方式适合多个tab页。
2、请求永远只有只有一次,(上面两张图并没有截取到这也是本次文献要讲的问题),那么这渲染表格永远只会存在一个,请求路劲自然也只有一个了

坏处:也就是缓存(解决了就不叫问题了)

解决方法:
有参数的话会发现where里面是有属性的,并且url等参数在reload的时候都会被保留.

所以解决reload缓存的问题:
**在reload的配置内,将参数重新赋值. 比方说
url : ’ ’
where:{ status : 0 }
或者 将条件参数删除 delete this.where;

另外,如果想取消分页,除了 page:false ,有时还需加上 limit: 999 ,因为虽然不分页,但是默认还是10条**

然后我这里解决是用if else解决的,这样写那么多个表格只能存在一个,自然就不会有缓存问题了,这是第一种。

第二种:给每个表格加一个唯一的ID属性,这样也是可以的,并且是最方便的一种

recordTable = layTable.render({
                elem: '#tabRecord',
                data:[],              
                page: { //指定分页参数
                    limit: 10,//指定每页显示的条数
                    limits: [10, 20, 50, 100]//每页条数的选择项
                },
                id: 'id5'     //唯一ID在这里
            });

在这里插入图片描述

具体判断条件根据实际情况来。

第二个问题:条件参数默认不清空
只需要给需要的条件赋值,不需要的条件赋值为null或“”即可

 filtrate = 0;//条件查询赋值为0(不需要的条件)
 strState = null;//条件查询赋值为空(不需要的条件)
	
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐