解決layui中table異步數(shù)據(jù)請(qǐng)求不支持自定義返回?cái)?shù)據(jù)格式的問(wèn)題
使用版本 layui-v2.3.0
修改:
打開(kāi)layui中table.js源碼
在 Class.prototype.pullData 這個(gè)方法定義內(nèi)部
//獲得數(shù)據(jù) 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(); //渲染開(kāi)始時(shí)間 if(options.url){ //Ajax請(qǐng)求 var params = {}; params[request.pageName] = curr; params[request.limitName] = options.limit; //參數(shù) 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){ // 加入這部分?。?! // 臨時(shí)解決layui的table組件中response選項(xiàng)不支持多層級(jí)獲取接口數(shù)據(jù)的方法 // ----------------開(kāi)始--------------------- if (typeof options.responseHandler == "function") { res = options.responseHandler(res); } // ----------------結(jié)束--------------------- if(res[response.statusName] != response.statusCode){ that.renderForm(); that.layMain.html('<div class="'+ NONE +'">'+ (res[response.msgName] || '返回的數(shù)據(jù)狀態(tài)異常') +'</div>'); } else { that.renderData(res, curr, res[response.countName]), sort(); options.time = (new Date().getTime() - that.startTime) + ' ms'; //耗時(shí)(接口請(qǐng)求+視圖渲染) } 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 +'">數(shù)據(jù)接口請(qǐng)求異常</div>'); that.renderForm(); loadIndex && layer.close(loadIndex); } }); } else if(options.data && options.data.constructor === Array){ //已知數(shù)據(jù) 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的時(shí)候
加入
responseHandler: function (res) { // 可進(jìn)行數(shù)據(jù)操作 return { "count": res.data.count, "data": res.data.companyList, "code": res.code == 200 ? 0 : -1 //code值為200表示成功 }; },
以上這篇解決layui中table異步數(shù)據(jù)請(qǐng)求不支持自定義返回?cái)?shù)據(jù)格式的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JS Map 和 List 的簡(jiǎn)單實(shí)現(xiàn)代碼
本篇文章是對(duì)在JS中Map和List的簡(jiǎn)單實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07關(guān)于捕獲用戶(hù)何時(shí)點(diǎn)擊window.onbeforeunload的取消事件
關(guān)于捕獲用戶(hù)何時(shí)點(diǎn)擊window.onbeforeunload的取消事件的代碼,需要的朋友可以參考下。2011-03-03JSON傳遞bool類(lèi)型數(shù)據(jù)的處理方式介紹
如果服務(wù)器端生成的JSON中有bool類(lèi)型的數(shù)據(jù)時(shí),到客戶(hù)端解析時(shí)出現(xiàn)了小小的問(wèn)題,下面簡(jiǎn)單為大家介紹下正確的處理方式2013-09-09uniapp 實(shí)現(xiàn)微信小程序全局分享的示例代碼
本文主要介紹了uniapp 實(shí)現(xiàn)微信小程序全局分享的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12javascript Table 中2個(gè)列(TD)的交換實(shí)現(xiàn)代碼
非常不錯(cuò)的用js控制talbe中td的位置的實(shí)現(xiàn)代碼。2009-02-02教你如何在 Javascript 文件里使用 .Net MVC Razor 語(yǔ)法
文章主要是介紹了通過(guò)一個(gè)第三方類(lèi)庫(kù)RazorJS,實(shí)現(xiàn)Javascript 文件里使用 .Net MVC Razor 語(yǔ)法,很巧妙,推薦給大家2014-07-07