解決layui的table插件無法多層級(jí)獲取json數(shù)據(jù)的問題
對(duì)于layui的table插件無法多層級(jí)獲取json數(shù)據(jù)的解決方法,版本:2.2.6
根據(jù)官方文檔 你接口返回的數(shù)據(jù)格式,遵循 response 對(duì)應(yīng)的字段名稱。
默認(rèn)的格式為如下:
{
code: 0,//數(shù)據(jù)狀態(tài)的字段名稱,默認(rèn):code
msg: “”, //狀態(tài)信息的字段名稱,默認(rèn):msg
count: 1000,//數(shù)據(jù)總數(shù)的字段名稱,默認(rèn):count
data: []//數(shù)據(jù)列表的字段名稱,默認(rèn):data
}
那么當(dāng)后臺(tái)返回的數(shù)據(jù)為如下格式時(shí):就無法直接獲取到“l(fā)ist”和“total”了
{“status”:0,
“msg”:”超級(jí)管理員查詢成功”,
“data”:{
“pageNum”:1,
“pageSize”:10,
“size”:2,
“total”:2,
“l(fā)ist”:[
{“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. 最直接的方法是叫后臺(tái)人員直接改為官方文檔的方式
2. 先通過ajax獲取到數(shù)據(jù),然后通過data屬性進(jìn)行賦值,當(dāng)涉及到分頁(yè)時(shí),代碼會(huì)比較冗余;
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請(qǐng)求成功函數(shù)success里添加以下代碼:
typeof renderResponse === 'function' && (t = renderResponse(t));
使用時(shí):在response屬性中用.來分割層級(jí),代碼如下:
response: {
statusName: 'status' //數(shù)據(jù)狀態(tài)的字段名稱,默認(rèn):code
,statusCode: 0 //成功的狀態(tài)碼,默認(rèn):0
,msgName: 'msg' //狀態(tài)信息的字段名稱,默認(rèn):msg
,countName: 'data.total' //數(shù)據(jù)總數(shù)的字段名稱,默認(rèn):count
,dataName: 'data.list' //數(shù)據(jù)列表的字段名稱,默認(rèn):data
}
以上這篇解決layui的table插件無法多層級(jí)獲取json數(shù)據(jù)的問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 解決layui table表單提示數(shù)據(jù)接口請(qǐng)求異常的問題
- layui異步加載table表中某一列數(shù)據(jù)的例子
- layui-table表復(fù)選框勾選的所有行數(shù)據(jù)獲取的例子
- layui 對(duì)table中的數(shù)據(jù)進(jìn)行轉(zhuǎn)義的實(shí)例
- layui-table對(duì)返回的數(shù)據(jù)進(jìn)行轉(zhuǎn)變顯示的實(shí)例
- layui table數(shù)據(jù)修改的回顯方法
- 解決layui數(shù)據(jù)表格table的橫向滾動(dòng)條顯示問題
- layui實(shí)現(xiàn)數(shù)據(jù)表格table分頁(yè)功能(ajax異步)
- 解決layui中table異步數(shù)據(jù)請(qǐng)求不支持自定義返回?cái)?shù)據(jù)格式的問題
- layui-table獲得當(dāng)前行的上/下一行數(shù)據(jù)的例子
相關(guān)文章
Javascript 數(shù)組添加一個(gè) indexOf 方法的實(shí)現(xiàn)代碼
Javascript 的字符串有個(gè) indexOf 的方法,能夠返回字符在指定的字符串中的位置,非常有用,本文介紹了如何給 Javascript 數(shù)組也添加一個(gè)類似的方法。2009-09-09
[js高手之路]從原型鏈開始圖解繼承到組合繼承的產(chǎn)生詳解
下面小編就為大家?guī)硪黄猍js高手之路]從原型鏈開始圖解繼承到組合繼承的產(chǎn)生詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
靜態(tài)頁(yè)面實(shí)現(xiàn) include 引入公用代碼的示例
下面小編就為大家?guī)硪黄o態(tài)頁(yè)面實(shí)現(xiàn) include 引入公用代碼的示例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
微信小程序云開發(fā)實(shí)現(xiàn)云數(shù)據(jù)庫(kù)讀寫權(quán)限
這篇文章主要為大家詳細(xì)介紹了微信小程序云開發(fā)實(shí)現(xiàn)云數(shù)據(jù)庫(kù)讀寫權(quán)限,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
JavaScript mixin實(shí)現(xiàn)多繼承的方法詳解
這篇文章主要介紹了JavaScript mixin實(shí)現(xiàn)多繼承的方法,結(jié)合實(shí)例形式分析了mixin多繼承的原理與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-03-03

