全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题

本文实例讲述了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小时内与您取得联系。