1、今天,用django和layui结合,处理表格展示数据时,有数据的表格能正常显示列表,无数据的表格却提示了:返回的数据不符合规范,正确的成功状态码应为:"code": 0,于是开始了百度之旅

2、其中看下layui的官方文档,链接如下:https://www.layui.com/doc/modules/table.html#async

里面说得很清楚,由于layui的表格默认规定的数据格式是:

{
  "code": 0,
  "msg": "",
  "count": 1000,
  "data": [{}, {}]
} 

所以肯定是我没返回这个默认数据格式的,或者数据格式定义错误了。

3、于是尝试了一下下面这个链接的方法:https://www.cnblogs.com/Hmd528/p/10327190.html

我在表格渲染时加了下面这个属性:

            ,parseData: function (res) {
                return {
                    "code": 0
                    ,"msg": "暂无数据"
                    , "data": res
                }
            }

发现表格异步加载请求,没数据时直接显示表格列表列,还有分页的东西,如下图所示:

4、感觉不是很好看,至少也得提示一下暂无数据之类的吧,后面检查了一下代码,发现是我查询不到数据的时候没做相关的处理,是用django开发的,于是在逻辑代码增加了下面的代码:

        else:
            data_items = []
            data.__setitem__("data", data_items)
            data.__setitem__("code", 0)
            data.__setitem__("msg", "")
            data.__setitem__("count", count)

5、接着再去看下,发现表格一直再旋转当中,如下图所示:

6、于是看下js报错了,如下图所示:

7、原因是我们第四步加了那些逻辑代码,导致不能创建layui表格索引,所以,后面,我把第三步页面的那部分代码去掉,也就是表格渲染的时候加的这段代码(注:第四步的逻辑代码不可去掉):

​
            ,parseData: function (res) {
                return {
                    "code": 0
                    ,"msg": "暂无数据"
                    , "data": res
                }
            }

​

这样表格无数据的时候就提示无数据了。

以上内容仅供学习参考,谢谢!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐