问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

angularjs里面ng-repeat什么作用

发布网友 发布时间:2022-05-14 18:03

我来回答

3个回答

懂视网 时间:2022-05-14 22:25

这篇文章主要介绍了关于使用angularJs ng-repeat做表格合并行效果,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

描述

  • 使用angularJs做出表格合并的效果

  • 后端返回的数据

  •  [
      {"fileName":"111.pcap.00","startTime":"2018-06-05 10:16:04","taskName":"111","taskId":58,"fileId":72},
      {"fileName":"111.pcap.01","startTime":"2018-06-05 10:16:55","taskName":"111","taskId":58,"fileId":73},
      {"fileName":"aaa.pcap.00","startTime":"2018-06-05 10:10:28","taskName":"aaa","taskId":57,"fileId":71},
      {"fileName":"www.pcap.00","startTime":"2018-06-05 10:50:28","taskName":"www","taskId":59,"fileId":79}
     ]

    背景:

    为了能更直观的查看表格中相同的taskName所包含的数据,合并列名为taskName且值相等的行,期望效果如下图:

    1737610404-5b34a2a374349_articlex[1].png

    分析:

    首先看后端返回的数据,是个一维数组,直接使用ng-repeat遍历行(tr)得到的是一个不带合并效果的表格,如图:

    3525796045-5b34a31560b24_articlex[1].png

    怎么解决呢?想到的一种方案就是把taskName相同的数据合并成一条,再进行遍历。

    实现方案

  • 首先对原始数据进行处理,在我这里是把taskName相同的,合并成一条数据,重新处理以后的数据如下:

  • [
     {"taskName":"111","fileList":[{"fileName":"111.pcap.00","startTime":"2018-06-05 10:16:04","taskName":"111","taskId":58,"fileId":72},{"fileName":"111.pcap.01","startTime":"2018-06-05 10:16:55","taskName":"111","taskId":58,"fileId":73}]},
     {"taskName":"aaa","fileList":[{"fileName":"aaa.pcap.00","startTime":"2018-06-05 10:10:28","taskName":"aaa","taskId":57,"fileId":71}]},
     {"taskName":"www","fileList":[{"fileName":"www.pcap.00","startTime":"2018-06-05 10:50:28","taskName":"www","taskId":59,"fileId":79}]}
    ]

    重新构造的方法如下,数组list便是处理的结果,只需要把list赋值给$scope变量便可在页面上使用

     var list = [];
     angular.forEach(sourceData,function (item) {
     for(var i=0;i<list.length;i++){
      if(list[i].taskName === item.taskName){
      list[i].fileList.push(item);
      return;
      }
     }
     list.push({
      taskName:item.taskName,
      fileList:[item]
     });
     });
  • 现在看html这里,如果仍然在<tr>上进行ng-repeat,得不到预期效果。需要在上一层也就是<tbody>上遍历,因为每条数据都包含字段taskName,在做合并时只需要保留一个,使用ng-if='$index==0'控制。

  •  <tbody ng-repeat="file in tableData">
     <tr ng-repeat="item in file.fileList">
      <td ng-if="$index ==0" rowspan="{{file.fileList.length}}">{{file.taskName}}</td>
      <td>{{item.fileName}}</td>
      <td>{{item.startTime}}</td>
      <td class="table-col-operate">
      <span>
      <a ng-click="capture.download(item.fileId)">下载</a>
      <span class="text-red " ng-click="capture.deleteCapture(item)">删除</span>
      </span>
      </td>
     </tr>
     </tbody>

    总结

    在写重新构造原数组的方法时遇到问题,写的比较复杂,后来经过同事的点播,使用了现在比较简洁的方式。
    另外,实现的方式不只一种,我也试了其他的,都没有这个简单。

    热心网友 时间:2022-05-14 19:33

    <div ng-app="" ng-init="names=['Jani','Hege','Kai']">
    <p>使用 ng-repeat 来循环数组</p>
    <ul>
    <li ng-repeat="x in names">
    {{ x }}
    </li>
    </ul>
    </div>

    热心网友 时间:2022-05-14 20:51

    类似于循环啊。
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    什么样的猫叫起司猫? 2021年春节后工地普遍是哪天开工? 美国大学介绍——印第安纳大学伯明顿分校 480-500分之间的大学有哪些 平安驾意险需要买两份保险吗? AI编译器技术剖析(一)-概述 AI编译器技术剖析(三)-树模型编译工具 Treelite 详解 研究性学习:人工智能产品的个人使用情况调研 全球变化中国现阶段水资源概况 我国水资源人均占有量现在只有 广东省广州市越秀区沿江东路的邮政编码是多少 智能门锁电池配备南孚i掌门好不? 研究生毕业可以再考研究生吗 坐等广州越秀区安全生产培训中心电话 已经有了本校的硕士学历,还能再考研考同一所学校的另一个专业吗? 在读研究生可以再考研吗? 我本身已经具有硕士学位了,还能再考其他专业的研究生吗 已经获得研究生学历还能报考研究生吗 硕士毕业还可以再考其他专业的硕士吗? 可以把豌豆荚帐号的皇室战争进度换到微信或QQ帐号上去吗? ipad mini2 系统升级ios8.0.2效果怎么样?卡不卡? 速度快不快? mini2升级到14会卡吗 mini2有必要升级ios12 今年过年是几月几日。就是大年30的那一天是几年几月几日啊 怎么添加微信群?有哪几种方式? 2020大年三十那天8点至24点温度个是多少? 如何用加入微信群 2020年大年有三十这天吗? 如何用加入微信群? 关于谈恋爱要不要在朋友圈公开,你是怎么看待的呢? 广州市越秀区的东西范围? 要详细阿一点阿 越秀区解放军武装部在哪里 谁知道广州市越秀区朝天小学的网页(不要远大的) 劳动课整理衣物分层作业如何布置 好多人都说用立白洗洁精洗碗好,立白洗洁精配方天然吗 听说用立白盐洁洗洁精可以用来洗水果?是不是真的呀?有没有人试过用立白盐洁洗洁精洗过水果的? 立白天然洗洁精感觉好用么,是那种健康的么 有约种任务怎么发朋友圈 立白洗洁精怎么样?谁家中用过? 立白天然盐洁洗洁精2300220184是什么意思 立白首页推出的立白天然透明瓶洗洁精,效果好不好 如果你和一个朋友出去玩,每次好像都是做任务似的,吃饭,拍照。发朋友圈感觉没什么意义,虽然现在的? 享赚发朋友圈,怎样提交任务? 朋友圈转发淘宝东西做任务是真的吗? 小度词典笔和作业帮学习笔哪款知名度比较高? 扫描翻译笔好不好用,识别率可以达到多少?英文翻译速度怎么样? 小度翻译笔文言文翻译怎么用 苹果5s开机的时候显示了一下白苹果,但是马上就黑频了怎么办?怎么都开不了机。 讯飞翻译笔怎么样?适合中学生使用吗? 南极人翻译笔怎么样