解决layui的table插件无法多层级获取json数据的问题


Posted in Javascript onSeptember 19, 2019

对于layui的table插件无法多层级获取json数据的解决方法,版本:2.2.6

根据官方文档 你接口返回的数据格式,遵循 response 对应的字段名称。

默认的格式为如下:

{ 
code: 0,//数据状态的字段名称,默认:code 
msg: “”, //状态信息的字段名称,默认:msg 
count: 1000,//数据总数的字段名称,默认:count 
data: []//数据列表的字段名称,默认:data 
}

那么当后台返回的数据为如下格式时:就无法直接获取到“list”和“total”了

{“status”:0, 
“msg”:”超级管理员查询成功”, 
“data”:{ 
“pageNum”:1, 
“pageSize”:10, 
“size”:2, 
“total”:2, 
“list”:[ 
{“phone”:”13713596448”,”username”:”旺”,”passwd”:”1”,”usegrant”:”0”,”leader”:”“,”chancecount”:”1000”,”createtime”:1528369281000,”updatetime”:1528369285000,”usecount”:”0”}, 
{“phone”:”18038060732”,”username”:”彬”,”passwd”:”1”,”usegrant”:”0”,”leader”:”“,”chancecount”:”100”,”createtime”:1528422270000,”updatetime”:1528422270000,”usecount”:”0”} 
]

解决方案:

1. 最直接的方法是叫后台人员直接改为官方文档的方式

2. 先通过ajax获取到数据,然后通过data属性进行赋值,当涉及到分页时,代码会比较冗余;

3.通过url属性赋值,则在table源文件中 M.prototype.page方法下添加以下代码:

var multilevel=function (data,list) {
  var d = data;
  for (var i in list){
    d =d[list[i]];
  }
  return d
};
var renderResponse=function (data) {
 var statusNameLsit=r.statusName.split("."),
   msgNameLsit=r.msgName.split("."),
   countNameLsit=r.countName.split("."),
   dataNameLsit=r.dataName.split(".");
 var dataTemp={};
 dataTemp[r.statusName]=multilevel(data,statusNameLsit);
 dataTemp[r.msgName]=multilevel(data,msgNameLsit);
 dataTemp[r.countName]=multilevel(data,countNameLsit);
 dataTemp[r.dataName]=multilevel(data,dataNameLsit);

 return dataTemp;
};

在M.prototype.page中ajax请求成功函数success里添加以下代码:

typeof renderResponse === 'function' && (t = renderResponse(t));

使用时:在response属性中用.来分割层级,代码如下:

response: {
  statusName: 'status' //数据状态的字段名称,默认:code
  ,statusCode: 0 //成功的状态码,默认:0
  ,msgName: 'msg' //状态信息的字段名称,默认:msg
  ,countName: 'data.total' //数据总数的字段名称,默认:count
  ,dataName: 'data.list' //数据列表的字段名称,默认:data
}

以上这篇解决layui的table插件无法多层级获取json数据的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 中介者模式实例
Dec 16 Javascript
JavaScript Event学习第五章 高级事件注册模型
Feb 07 Javascript
jQuery 点击图片跳转上一张或下一张功能的实现代码
Mar 12 Javascript
js去空格技巧分别去字符串前后、左右空格
Oct 21 Javascript
js图片模糊切换显示特效的方法
Feb 17 Javascript
jQuery使用$.each遍历json数组的简单实现方法
Apr 18 Javascript
JavaScript原生对象常用方法总结(推荐)
May 13 Javascript
JS遍历页面所有对象属性及实现方法
Aug 01 Javascript
JS对象深度克隆实例分析
Mar 16 Javascript
一文让你彻底搞清楚javascript中的require、import与export
Sep 24 Javascript
Vue.js 踩坑记之双向绑定
May 03 Javascript
Vue动态修改网页标题的方法及遇到问题
Jun 09 Javascript
Layui数据表格 前后端json数据接收的方法
Sep 19 #Javascript
用原生JS实现爱奇艺首页导航栏代码实例
Sep 19 #Javascript
vue简单练习 桌面时钟的实现代码实例
Sep 19 #Javascript
JS实现滚动条触底加载更多
Sep 19 #Javascript
Vue v-text指令简单使用方法示例
Sep 19 #Javascript
Vue.set 全局操作简单示例
Sep 19 #Javascript
layui对工具条进行选择性的显示方法
Sep 19 #Javascript
You might like
php后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
php分页查询的简单实现代码
2017/03/14 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
2018/05/16 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
jQuery实现的别踩白块小游戏完整示例
2019/01/07 jQuery
通过实例讲解JS如何防抖动
2019/06/15 Javascript
JS随机密码生成算法
2019/09/23 Javascript
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
python机器学习实战之树回归详解
2017/12/20 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
jupyter notebook参数化运行python方式
2020/04/10 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
OPPO手机官方商城:中国手机市场出货量第一品牌
2017/10/18 全球购物
英国和世界各地预订便宜的酒店:LateRooms.com
2019/05/05 全球购物
经济管理专业毕业生推荐信
2013/11/11 职场文书
简短的公司员工自我评价分享
2013/11/13 职场文书
保护环境倡议书
2014/04/14 职场文书
安全承诺书格式
2014/05/21 职场文书
导游词格式
2015/02/13 职场文书
交通事故赔偿起诉书
2015/05/20 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python
Django Paginator分页器的使用示例
2021/06/23 Python