使用版本 layui-v2.3.0
修改:
打开layui中table.js源码
在 class.prototype.pulldata 这个方法定义内部
//获得数据 class.prototype.pulldata = function(curr, loadindex){ var that = this ,options = that.config ,request = options.request ,response = options.response ,sort = function(){ if(typeof options.initsort === 'object'){ that.sort(options.initsort.field, options.initsort.type); } }; that.starttime = new date().gettime(); //渲染开始时间 if(options.url){ //ajax请求 var params = {}; params[request.pagename] = curr; params[request.limitname] = options.limit; //参数 var data = $.extend(params, options.where); if(options.contenttype && options.contenttype.indexof("application/json") == 0){ //提交 json 格式 data = json.stringify(data); } $.ajax({ type: options.method || 'get' ,url: options.url ,contenttype: options.contenttype ,data: data ,datatype: 'json' ,headers: options.headers || {} ,success: function(res){ // 加入这部分!!! // 临时解决layui的table组件中response选项不支持多层级获取接口数据的方法 // ----------------开始--------------------- if (typeof options.responsehandler == "function") { res = options.responsehandler(res); } // ----------------结束--------------------- if(res[response.statusname] != response.statuscode){ that.renderform(); that.laymain.html('<div class="'+ none +'">'+ (res[response.msgname] || '返回的数据状态异常') +'</div>'); } else { that.renderdata(res, curr, res[response.countname]), sort(); options.time = (new date().gettime() - that.starttime) + ' ms'; //耗时(接口请求+视图渲染) } loadindex && layer.close(loadindex); typeof options.done === 'function' && options.done(res, curr, res[response.countname]); } ,error: function(e, m){ that.laymain.html('<div class="'+ none +'">数据接口请求异常</div>'); that.renderform(); loadindex && layer.close(loadindex); } }); } else if(options.data && options.data.constructor === array){ //已知数据 var res = {} ,startlimit = curr*options.limit - options.limit res[response.dataname] = options.data.concat().splice(startlimit, options.limit); res[response.countname] = options.data.length; that.renderdata(res, curr, options.data.length), sort(); typeof options.done === 'function' && options.done(res, curr, res[response.countname]); } };
使用:
在建立table的时候
加入
responsehandler: function (res) { // 可进行数据操作 return { "count": res.data.count, "data": res.data.companylist, "code": res.code == 200 ? 0 : -1 //code值为200表示成功 }; },
以上这篇解决layui中table异步数据请求不支持自定义返回数据格式的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。
如对本文有疑问, 点击进行留言回复!!
Android 入门第七讲01-数据存储(数据存储概述,文件存储(raw和asserts目录读写,data/data/包名目录读写,sdcard目录读写),SharedPreferences读写)
vue-axios系列:axios拦截器,配置请求头,配置请求参数
Vuejs 针对 安卓低版本 、ios9.x 不兼容 ES6语法导致失效解决方法
网友评论