Angular中ng-repeat与ul li的多层嵌套重复问题


Posted in Javascript onJuly 24, 2017

学习ng-repeat的过程中常常使用到ng-repeat=”item in array”来循环输出所需要的元素,但是当我们需要使用ng-repeat进行多层嵌套时则容易出现数据重复的问题。

如在加载与点击事件于js中进行两次http请求获取data分别为list01[]数组和list02[]赋值再如下显示则会导致it1下每个ul都会重复输出list02[]数组中的内容

<ul ng-repeat="it1 in list01">
  <li ng-click="show(it1)">{{it1.value}}</li>
  <ul ng-repeat="it2 in list02">
    <li>{{it2.value}}</li>
  </ul>
</ul>

输出如:

1-1
  1-2
  1-1
  1-2

而非

1-1
  1-2
  2-1
  2-2

其实这个也不是问题,只要换一种思维方式将列表和父级元素相关联形成树状结构就好了

HTML中代码如下

<ul ng-repeat="it1 in list01">
  <li ng-click="show(it1)">{{it1.name}}</li>
  <ul ng-repeat="it2 in it1.child" ng-show="it1.showChild" style="text-indent:10px;">
    <li ng-click="show(it1, it2)">{{it2.name}}</li>
    <ul ng-repeat="it3 in it2.child" ng-show="it2.showChild" style="text-indent:10px;">
      <li ng-click="show(it1, it2, it3)">{{it3.name}}</li>
      <ul ng-repeat="it4 in it3.child" ng-show="it3.showChild">
        <li>{{it4.name}}</li>
      </ul>
    </ul>
  </ul>
</ul>

js中代码如下

$http.get('ng01.json').success(function (_data) {
  $scope.list01 = [];
  $scope.list01 = _data.data;
});
$scope.show = function (it1, it2, it3) {
  if(it3 != null){
    $http.get("ng04.json").success(function (_data) {
      $scope.list04 = [];
      $scope.list04 = _data.data;
      for(var x in $scope.list03){
        $scope.list03[x].showChild = false;
      }
      it3.showChild = true;
      it3.child = _data.data;
     });
     return;
  }
  if(it2 != null){
    $http.get("ng03.json").success(function (_data) {
      $scope.list03 = [];
      $scope.list03 = _data.data;
      for(var x in $scope.list02){
        $scope.list02[x].showChild = false;
      }
      it2.showChild = true;
      it2.child = _data.data;
    });
    return;
  }
  $http.get("ng02.json").success(function (_data) {
    $scope.list02 = [];
    $scope.list02 = _data.data;
    for(var x in $scope.list01){
      $scope.list01[x].showChild = false;
    }
    it1.showChild = true;
    it1.child = _data.data;
  });
}

json文件都是这样的

{
 "success":1,
 "data":[
  {"name":"01"},
  {"name":"02"}
 ]
}

总结

以上所述是小编给大家介绍的Angular中ng-repeat与ul li的多层嵌套,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js电信网通双线自动选择技巧
Nov 18 Javascript
JavaScript中的作用域链和闭包
Jun 30 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
Aug 08 Javascript
JS取得绝对路径的实现代码
Jan 16 Javascript
jQuery实现炫酷的鼠标轨迹特效
Feb 01 Javascript
Jquery树插件zTree用法入门教程
Feb 17 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
Aug 22 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
Jul 10 Javascript
基于JavaScript 性能优化技巧心得(分享)
Dec 11 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
Apr 14 Javascript
React优化子组件render的使用
May 12 Javascript
微信小程序跨页面传递data数据方法解析
Dec 13 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
Jul 24 #Javascript
浅析JavaScript中的平稳退化(graceful degradation)
Jul 24 #Javascript
vue.js移动端app实战1:初始配置详解
Jul 24 #Javascript
React 子组件向父组件传值的方法
Jul 24 #Javascript
浅谈Node.js ORM框架Sequlize之表间关系
Jul 24 #Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
Jul 24 #Javascript
jQuery实现拼图小游戏(实例讲解)
Jul 24 #jQuery
You might like
杏林同学录(四)
2006/10/09 PHP
加强版phplib的DB类
2008/03/31 PHP
PHP通用检测函数集合
2011/02/08 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
thinkphp分页集成实例
2017/07/24 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
Extjs学习笔记之六 面版
2010/01/08 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
js中直接声明一个对象的方法
2014/08/10 Javascript
基于jquery实现简单的手风琴特效
2015/11/24 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
详解ES6中的 Set Map 数据结构学习总结
2018/11/06 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
记录Django开发心得
2014/07/16 Python
Python查找相似单词的方法
2015/03/05 Python
python3 读取Excel表格中的数据
2018/10/16 Python
送给他或她的礼物:FUN.com
2018/08/17 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
法国在线药房:1001Pharmacies
2021/03/07 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
成人继续教育实施方案
2014/03/01 职场文书
就业协议书怎么填
2014/04/11 职场文书
初二学习计划书范文
2014/04/27 职场文书
文明寝室申报材料
2014/05/12 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
城管年度个人总结
2015/02/28 职场文书
运动会100米加油稿
2015/07/21 职场文书
团队拓展训练感想
2015/08/07 职场文书
高一英语教学反思
2016/03/03 职场文书
2019年健身俱乐部的创业计划书
2019/08/26 职场文书
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android