解决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 相关文章推荐
一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)
Jun 02 Javascript
jquery文字上下滚动的实现方法
Mar 22 Javascript
JavaScript通过join函数连接数组里所有元素的方法
Mar 20 Javascript
Ionic如何实现下拉刷新与上拉加载功能
Jun 03 Javascript
js css+html实现简单的日历
Jul 14 Javascript
js改变透明度实现轮播图的算法
Aug 24 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
Aug 25 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
Sep 22 Javascript
微信小程序遍历Echarts图表实现多个饼图
Apr 25 Javascript
Weex开发之地图篇的具体使用
Oct 16 Javascript
Vue v-bind动态绑定class实例方法
Jan 15 Javascript
小程序瀑布流组件实现翻页与图片懒加载
May 19 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
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
Session保存到数据库的php类分享
2011/10/24 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
2012/03/26 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
2013/06/20 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
JavaScript类的写法
2016/09/17 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
2018/09/19 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
python的urllib模块显示下载进度示例
2014/01/17 Python
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
详解Python中list[::-1]的几种用法
2020/11/16 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
法学自荐信
2014/06/20 职场文书
名人演讲稿范文
2014/09/16 职场文书
商家认证委托书格式
2014/10/16 职场文书
2014年转正工作总结
2014/11/08 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
java中如何截取字符串最后一位
2022/07/07 Java/Android