1. 程式人生 > 其它 >elementUI table 關於巢狀表格第二層資料的獲取與渲染

elementUI table 關於巢狀表格第二層資料的獲取與渲染

  • 問題一:MySQL取資料json格式資料時,到前端的資料是string型別
  • 解決方法:forEach遍歷取到的返回值,將字串型別用JSON.parse轉換成json
以下例子中sale_info在資料庫中是json格式。
axios({
       url:'/getSalesList',
       method:'post',
       data:qs.stringify(that.userInfo)
})
   .then(function (result) {
       var saleInfoArr = result.data
       saleInfoArr.forEach(
function (value,i,arr) { arr[i].sale_info = JSON.parse(arr[i].sale_info) } }) that.saleList = saleInfoArr })
  • 問題二:當json物件只有一個時,由於資料不是陣列,vue無法渲染而報錯
  • 解決辦法:判斷轉換後的json是陣列還是物件,如果不是陣列,把物件轉換成陣列
axios({
    url:'/getSalesList',
    method:'post',
    data:qs.stringify(that.userInfo)
})
    .then(
function (result) { var saleInfoArr = result.data saleInfoArr.forEach(function (value,i,arr) { arr[i].sale_info = JSON.parse(arr[i].sale_info)
if(!Array.isArray(arr[i].sale_info)){ //判斷是否為陣列 const objToArr = [];          //建立一個臨時陣列 objToArr.push(arr[i].sale_info) //將物件push進臨時陣列
arr[i].sale_info = objToArr //覆蓋賦值 }
}) that.saleList
= saleInfoArr   })
  • 最終效果: