作用
实例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.6.8/angular.min.js"></script>
</head>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<h1>{{indexName}}</h1>
<section>
<div ng-repeat="_i in arr track by $index">序号:{{$index}} 内容:{{_i}}</div>
</section>
</div>
<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function ($scope) {
$scope.indexName = "主页";
$scope.arr = [1,1,2,3,4,5]
});
</script>
</body>
</html>
- 效果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1e2b918981ec8a49a485dbb00c48d070.png)
对于代码的解释
- 加上
track by $index
是为了解决,数组中有重复属性是报错,如果当前的例子不加track by $index
就会出现报错![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5f3211924ebda126ad410567bcfbe0e2.png)
- 上面的
track by $index
是为了标识每一个遍历标签的唯一性,但是为了后面更好的操作,我们最好使用唯一的表示,比如说id
来进行
注意事项
$index
并不是数组下标,当对于标签进行增删改的时候,我们并不能以$index
为标识获取正确的标签
- 比如将列表中第一个标签(
$index
为1)和第二个标签($index
为2)进行互换的时候,他们互换后,$index
并不互换,所以现在第一个$index
为2 - 所以,一般推荐
track by _i.id
- 当数组中为基本变量类型的时候,必须加上
track by
,引用变量的时候可以不用,但是最好加上