Vue中使用v-for實現一對多數據的2層和3層嵌套循環


場景

業務場景中常有一對多的情況。

后端在給前端返回數據時是一個對象的list,為每個對象的有一個屬性

是多的那個的對象的list。

比如后台給前端返回的數據示例如下

 

 

那么在Vue中怎樣將這個一對多的數據循環都顯示出來。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。

實現

實現兩層循環嵌套

      <div v-for="(item,index) in this.bcxingxidata" :key="index">

        <divv-if="item.bclx=='0'">
          <h1 style="color:red">班次名稱:{{item.bcmc}}</h1>
          <ul v-for="(data,k) in item.bcglXiangXiList" :key="k">
            <li>打卡時間段{{k+1}}:{{data.dkkssj}}--{{data.dkjssj}}</li>
          </ul>
        </div>

        <divv-if="item.bclx=='1'">
          <h1 style="color:red">班次名稱:{{item.bcmc}}</h1>
          <ul v-for="(data,k) in item.bcglXiangXiList" :key="k">
            <li>最早下井時間:{{data.dkkssj}}</li>
            <li>最晚下井時間:{{data.dkjssj}}</li>
            <li>最短下井時長:{{data.zxjxljsj}}</li>
            <li>最長下井時長:{{data.zdjxljsj}}</li>
          </ul>
        </div>

      </div>

使用外面一層的item即代表每個對象,獲取其多的那個list再次進行循環。

這里是使用了v-if進行了判斷,根據外層循環的某屬性的不同值顯示不同的模板。

實現效果

如果是三層嵌套循環或者更多的話同上

      <div v-for="(item,index) in this.bczxingxidata" :key="index">
        <h1 style="color:red">班次組名稱:{{item.bczmc}}</h1>
        <div v-for="(ele,j) in item.kqBcglList" :key="j">
          <h2>班次名稱:{{ele.bcmc}}</h2>

          <div v-if="ele.bclx=='0'">
            <ul v-for="(data,k) in ele.bcglXiangXiList" :key="k">
              <li>打卡時間段{{k+1}}:{{data.dkkssj}}--{{data.dkjssj}}</li>
            </ul>
          </div>

          <div v-if="ele.bclx=='1'">
            <ul v-for="(data,k) in ele.bcglXiangXiList" :key="k">
              <li>最早下井時間:{{data.dkkssj}}</li>
              <li>最晚下井時間:{{data.dkjssj}}</li>
              <li>最短下井時長:{{data.zxjxljsj}}</li>
              <li>最長下井時長:{{data.zdjxljsj}}</li>
            </ul>
          </div>
        </div>
      </div>

實現效果

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM