前两天有群友问在layui2.5.6版本中 table.reload的where参数,第一次初次加载传递参数{a:1,b:2},当改变参数个数发生变化后(如{a:1})再进行重载,虽然未提交参数b,但是参数b还是被提交到后台。
看到这问题,我想起不久前才有人问过,layui的技术支持也进行了回复。我去QQ群搜了下历史记录,才发现这已经不是第二次被人提出的问题了。看过layui的table的源码能发现reload中对传入的参数是进行对象合并操作的,所以前一次加载的where对象中存在的参数会依旧存在。
我把技术支持的回答复制出来。解决方案是直接修改layui的模块table.js的源码,找到delete data那一行,在后面再加上个delete where,这样就把上一次的where参数移除。
我也曾经遇到过where参数的问题,我当时是用笨办法处理,一直保留一个存着where参数的对象,每次都对这个对象的每个属性赋值,不需要的属性全部设为空。然后在reload时传入这个对象给where参数,让where参数的每个属性都覆盖。