解决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脚本性能优化注意事项
Nov 18 Javascript
JavaScript null和undefined区别分析
Oct 14 Javascript
让js弹出窗口居前显示的实现方法
Jul 10 Javascript
解析Javascript中难以理解的11个问题
Dec 09 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
Nov 25 Javascript
javascript创建对象、对象继承的实用方式详解
Mar 08 Javascript
jQuery插件 Jqplot图表实例
Jun 18 Javascript
原生javascript移动端滑动banner效果
Mar 10 Javascript
Angular2 http jsonp的实例详解
Aug 31 Javascript
关于layui的动态图标不显示的解决方法
Sep 04 Javascript
vue基础知识--axios合并请求和slot
Jun 04 Javascript
深入了解JavaScript词法作用域
Jul 29 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新手上路(十三)
2006/10/09 PHP
phpMyAdmin 安装教程全攻略
2007/03/19 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
javascript 构造函数强制调用经验总结
2012/12/02 Javascript
js调用图片隐藏&显示实现代码
2013/09/13 Javascript
javascript常用的正则表达式实例
2014/05/15 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
2015/10/10 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
基于Vuejs框架实现翻页组件
2020/06/29 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
Python socket编程实例详解
2015/05/27 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
Python原始套接字编程实例解析
2020/01/29 Python
python实现扫雷游戏
2020/03/03 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
2020/06/18 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
美国益智玩具购物网站:Fat Brain Toys
2017/11/03 全球购物
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
C语言50道问题
2014/10/23 面试题
市场部专员岗位职责
2013/11/30 职场文书
教师自我鉴定范文
2014/03/20 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
python numpy中multiply与*及matul 的区别说明
2021/05/26 Python
Apache自带的ab压力测试工具的实现
2022/07/23 Servers