微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

angularjs中 ng-repeat详解

angularJs中ng-repeat的使用

一、ng-repeat常规使用: ng-repeat="每次循环的循环项 in 数据" 循环数据 生成DOM

示例:循环数组和对象,生成相应dom节点

<body ng-app="myApp" ng-controller="demoCtrl">
	<ul>
    <!-- 1.遍历数组 -->
		<li ng-repeat="item in arr">{{item}}</li>
	</ul>
  <p>{{ obj.a }}</p>
  <!-- 2.遍历对象只能取到属性值 -->
  <div ng-repeat="item in obj">{{item}}</div>
  
  <!-- 3.遍历对象,同时输出键值对形式 -->
	<div ng-repeat="(key,value) in obj">{{key}}==>{{value}}</div>

  <!-- 4.遍历常见的json数据 -->
	<div ng-repeat="person in persons">{{person.name}}</div>

  <!-- 5.遍历嵌套数组 -->
	<div ng-repeat="person in persons">
    {{person.name}}
		<span ng-repeat="item in person.hobby"> {{item}}</span>
	</div>

	<script src="node_modules/angular/angular.js"></script>
	<script>
		angular.module('myApp',[])

			.controller('demoCtrl',['$scope',function($scope){
				$scope.arr = [1,2,3,4];
				$scope.obj = {
					a:1,b:2
				}
				$scope.persons = [
					{
						name:'张三',hobby:['敲代码','睡觉']
					},{
						name:'李四',hobby:['篮球','乒乓球']
					},{
						name:'王五',hobby:['吃饭','睡觉','打豆豆']
					}
				]
			}])
	</script>
</body>

二、ng-repeat中的常见属性

  • ng-repeat="每次循环的循环项 in 数据" 循环数据 生成DOM
  • $index 当前循环的索引
  • $first 当前循环是否是第一次循环
  • $last 当前循环是否是最后一次循环(返回boolean值)
  • $middle 当前循环是否是中间项 除了第一项 和 最后一项 都是中间项
  • $even 是否是偶数项
  • $odd 是否是奇数项

示例代码

<ul>
    <!-- 当一次循环的时候添加一个active类 导航中样式常用 -->
    <li ng-repeat="item in arr" class="{{$first ? 'active':' '}}">{{item}}
      <p>索引:{{$index}}</p>   
      <p>是都是最后一次循环:{{$last}}</p>
      <p>是否时中间项:{{$middle}}</p>
      <p>是否时偶数项:{{$even}}</p>
      <p>是否时奇数项:{{$odd}}</p>
    </li>
  </ul>
	<script src="node_modules/angular/angular.js"></script>
	<script>
		angular.module('myApp',function($scope){

        $scope.arr=[1,4,5];
			
			}])
	</script>

三、ng-repeat中不允许重复值的解决办法

  • 在循环当中 是不允许有重复项 使用 track by $index 解决这个问题(可以使用重复项)
<body ng-app="myApp" ng-controller="demoCtrl">
	<!--
		在循环当中 是不允许有重复项 使用 track by $index 解决这个问题(可以使用重复项)
	-->
	<ul>
		<li ng-repeat="item in arr track by $index">
      {{item}}
    </li>
	</ul>

	<script src="node_modules/angular/angular.js"></script>
	<script>
		angular.module('myApp',function($scope){
        <!-- 具有重复项a -->
				$scope.arr = ["a","b","c","a"];

			}])
	</script>

原文地址:https://www.jb51.cc/angularjs/146074.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐