本文实例讲述了AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题。分享给大家供大家参考,具体如下:

我们可以使用ng-repeat指令遍历一个JavaScript数组,当数组中有重复元素的时候,AngularJS会报错:
Error: [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: user in users, Duplicate key: number:1。下面的代码就会报错:
<html>
<head>
<script src="angular-1.2.2/angular.js"></script>
<script>
function rootController($scope,$rootScope,$injector)
{
$scope.dataList = [1,2,1];
}
</script>
</head>
<body ng-app ng-controller="rootController">
<div ng-repeat="data in dataList">
{{data}}
</div>
</body>
</html>
这是因为ng-Repeat不允许collection中存在两个相同Id的对象。
For example: item in items is equivalent to item in items track by $id(item). This implies that the DOM elements will be associated by item identity in the array.
对于数字或者字符串等基本数据类型来说,它的id就是它自身的值。因此数组中是不允许存在两个相同的数字的。为了规避这个错误,需要定义自己的track by表达式。
// 业务上自己生成唯一的id
item in items track by item.id
//或者直接拿循环的索引变量$index来用
item in items track by $index
如果是javascript对象类型数据,那么就算内容一摸一样,ng-repeat也不会认为这是相同的对象。如果将上面的代码中dataList,那么是不会报错的。比如$scope.dataList = [{"age":10},{"age":10}];
更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》
希望本文所述对大家AngularJS程序设计有所帮助。
# AngularJS
# ng-repeat
# track
# by
# 子语句
# 解决
# 重复数据
# 遍历
# 错误
# 使用 Angular 服务器端渲染 Transfer State Service
# Angular 服务器端渲染缓存功能问题
# JS Angular 服务器端渲染应用设置渲染超时时间
# Angular 服务器端渲染应用常见的内存泄漏问题小结
# 如何处理Angular 错误消息ERROR Error NullInjectorError No p
# Angular处理未可知异常错误的方法详解
# Angular 服务器端渲染错误消息localStorage is not defined解决分析
# 报错
# 自己的
# 进阶
# 这是
# 就会
# 相关内容
# 中有
# 感兴趣
# 给大家
# 可以使用
# 这是因为
# 更多关于
# 所述
# 程序设计
# 来用
# 组中
# 讲述了
# unique
# expression
相关文章:
Python路径拼接规范_跨平台处理说明【指导】
如何将凡科建站内容保存为本地文件?
如何在宝塔面板中创建新站点?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
装修招标网站设计制作流程,装修招标流程?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
如何快速搭建FTP站点实现文件共享?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
建站之星ASP如何实现CMS高效搭建与安全管理?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
建站主机功能解析:服务器选择与快速搭建指南
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
如何在阿里云ECS服务器部署织梦CMS网站?
深圳网站制作平台,深圳市做网站好的公司有哪些?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何续费美橙建站之星域名及服务?
广平建站公司哪家专业可靠?如何选择?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
大连网站设计制作招聘信息,大连投诉网站有哪些?
如何通过FTP服务器快速搭建网站?
免费视频制作网站,更新又快又好的免费电影网站?
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何在阿里云完成域名注册与建站?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
Python多线程使用规范_线程安全解析【教程】
如何生成腾讯云建站专用兑换码?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
建站主机系统SEO优化与智能配置核心关键词操作指南
北京的网站制作公司有哪些,哪个视频网站最好?
如何设置并定期更换建站之星安全管理员密码?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
如何通过VPS搭建网站快速盈利?
如何快速打造个性化非模板自助建站?
如何快速启动建站代理加盟业务?
活动邀请函制作网站有哪些,活动邀请函文案?
如何通过商城免费建站系统源码自定义网站主题?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
高性价比服务器租赁——企业级配置与24小时运维服务
如何通过PHP快速构建高效问答网站功能?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
红河网站制作公司,红河事业单位身份证如何上传?
如何高效利用亚马逊云主机搭建企业网站?
建站之星如何通过成品分离优化网站效率?
如何选择高效稳定的ISP建站解决方案?
如何在IIS中新建站点并解决端口绑定冲突?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
宿州网站制作公司兴策,安徽省低保查询网站?
如何彻底删除建站之星生成的Banner?
*请认真填写需求信息,我们会在24小时内与您取得联系。