解决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 预解析
Oct 25 Javascript
javascript 简单抽屉效果的实现代码
Mar 09 Javascript
JQuery获取文本框中字符长度的代码
Sep 29 Javascript
javascript继承的六大模式小结
Apr 13 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
Jun 03 Javascript
jQuery实现手机版页面翻页效果的简单实例
Oct 05 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
Dec 26 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
Jul 04 Javascript
JavaScript 作用域实例分析
Oct 02 Javascript
vue 封装 Adminlte3组件的实现
Mar 18 Javascript
Node.js API详解之 vm模块用法实例分析
May 27 Javascript
JS轻量级函数式编程实现XDM三
Jun 16 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采集利器 Snoopy 试用心得
2011/07/03 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
php mb_substr()函数截取中文字符串应用示例
2014/07/29 PHP
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
2017/04/13 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
微信小程序修改checkbox的样式代码实例
2020/01/21 Javascript
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
[39:08]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第一场 12.12
2020/12/16 DOTA
python中星号变量的几种特殊用法
2016/09/07 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
2020/02/29 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
计算机开发个人求职信范文
2013/09/26 职场文书
后勤部经理岗位职责
2014/02/23 职场文书
拾金不昧表扬稿大全
2015/05/05 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
52条SQL语句教你性能优化
2021/05/25 MySQL
Django + Taro 前后端分离项目实现企业微信登录功能
2022/04/07 Python
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技