关于layui table 渲染数据不全的问题
前言
昨晚同事反馈,界面表格显示数据数量共10条,但表格数据只显示了9条,让笔者排查下什么原因。情况如下:
原因
通过观察,后台接口返回数据是没有问题,前端JS运行也正常,没有任何报错信息,但是layui table就是没有渲染第三条数据到界面上呈现。
我采用最笨的方法,采用了控制变量的方法,一个一个地调整第三条数据的字段数据,最后定位到问题出现在 【length】 这个字段上。
第三条数据的length的值为0,导致layui table表格不渲染。
为什么会有这样的问题呢?我们决定分析下layui table的源码。由于layui table的js源码是压缩过的,我们用idea格式化,进行浏览。最后找到了原因。
在js里面,对象可以是二维数组的,数组本身有个length属性,layui用这个length来判断是否加载到表格。而我们定义的数据有个字段名同为length,l.length实际是加载了对应的属性值,而且值刚好为0,所以就导致数据没有渲染出来。
解决方案
后面我们修改了length字段名,解决了这个问题。
建议
基于这次经历,在后续的开发中,对于字段的命名要避开关键字。