• 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>

    实现效果

  • 相关阅读:
    JS中的getter与setter
    Node.js中exports与module.exports的区别
    JS中的匿名函数自执行、函数声明与函数表达式
    JS实现千分位
    JS中的new操作符原理解析
    JS中null与undefined的区别
    JavaScript中callee与caller,apply与call解析
    解决vue路由与锚点冲突
    jQuery中deferred的对象使用
    Vue的生命周期
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/13523545.html
Copyright © 2020-2023  润新知