AngularJS ng-repeat数组有重复值的解决方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了AngularJS ng-repeat数组有重复值的解决方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1302字,纯文字阅读大概需要2分钟。
内容图文
![AngularJS ng-repeat数组有重复值的解决方法](/upload/InfoBanner/zyjiaocheng/349/aaf6d8dc2a4e411ba73588c6c4b30aa7.jpg)
前言
大家都知道默认在ng-repeat
的时候每一个item
都要保证是唯一的,否则console
就会打出error
告诉你哪个key/value
是重复的。
如:
$scope.items = [ 'red', 'blue', 'yellow', 'white', 'blue' ];
这个数组blue
就重复了,html这么遍历它
<li ng-repeat="item in items">{{ item }}</li>
控制台就会抛出一个错误:
点击错误链接到Angular官网看详细错误,官网明确给出是因为值重复了:
Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: item in items, Duplicate key: string:blue, Duplicate value: blue
解决方法
这就纳闷了,正常的业务里数组有重复的值是很正常的,数组要硬要搞成唯一的ng-repeat
才能遍历就白瞎了,继续往下看,发现官网给了一个解决的方案
<div ng-repeat="value in [4, 4] track by $index"></div>
于是按照这个方案改了一下
<li ng-repeat="item in items track by $index">{{ item }}</li>
刷新网页,内容被正常解析
其实ng-repeat
还是需要一个唯一的key
,只不过你不track
的话默认就是item
本身,另外也只有在普通数据类型字符串,数字等才会出现这个问题,如果换成Object
$scope.items = [ ['red'], ['blue'], ['yellow'], ['white'], ['blue'] ];
html恢复为
<li ng-repeat="item in items">{{ item }}</li>
执行结果:
不明白的童鞋那就自己看看下面的运算表达式,猜猜结果是什么,然后在浏览器的控制台试一试你的答案是否正确
[] === []
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
内容总结
以上是互联网集市为您收集整理的AngularJS ng-repeat数组有重复值的解决方法全部内容,希望文章能够帮你解决AngularJS ng-repeat数组有重复值的解决方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。