解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018-08-19 18:17
891 查看
使用版本 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异步数据请求不支持自定义返回数据格式的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- Ajax数据返回格式问题解决
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- android retrofit 实战自定义converter,解决相同接口返回不同数据的问题
- Ajax数据返回格式问题解决
- dedecms自定义表单数据校验不对,程序返回问题解决
- 分针网——每日分享:Ajax数据返回格式问题解决
- springmvc解决返回json的数据格式问题
- android retrofit 实战自定义converter,解决相同接口返回不同数据的问题
- jQuery在异步请求数据返回后,调用$("selector").html(data.content);之后因为一些特殊字符或者',"不能显示内容的问题解决办法
- android retrofit 实战自定义converter,解决相同接口返回不同数据的问题
- Ajax请求ashx 返回 json 格式数据常见问题
- 解决处理后台返回json数据格式问题
- android retrofit 实战自定义converter,解决相同接口返回不同数据的问题
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- cxf web service 解决返回的json格式数据乱码问题
- ajax post请求返回json数据后,页面不需要刷新的问题解决如例
- 解决SpringMVC返回Json数据格式不严谨报异常的问题(草稿未完成)
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题