angular ng-repeat重复数据遍历的报错

<div ng-repeat="value in [name, name,name,name] "></div>

今天在用angular指令遍历一个javascript数组,当数组中有重复元素的时候,angular会报错,这是因为ng-repeat不允许collection(收集)中存在两个相同Id的对象。

查了一些资料,原来对于数字或者字符串等基本数据类型来说,每个元素的id就是它自身的值。因此数组中是不允许存在两个相同的数字的,为了规避这个错误,需要定义自己的track by表达式。

<div ng-repeat="value in [name, name,name,name]  track by $index "></div>

$index 主要在要针对每个元素进行一些特殊操作时非常有用,比如第一个元素着重显示为红色等等。

但是如果是javascript对象类型数据,那么就算内容一摸一样,ng-repeat也不会认为这是相同的对象。
比如
$scope.dataList = [{"name":gsc},{"name":gsc}];

发布了55 篇原创文章 · 获赞 41 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/weixin_42966484/article/details/103992508