热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

AngularJSng-repeat数组有重复值的解决方法

不知道大家是否遇到过这个问题,在当Angular.JSng-repeat数组中有重复项时,系统就会抛出异常,这是该怎么做?本文通过示例代码介绍了详细的解决方法,有需要的朋友们可以参考借鉴,下面来一起看看吧。

前言

大家都知道默认在ng-repeat的时候每一个item都要保证是唯一的,否则console就会打出error告诉你哪个key/value是重复的。

如:

$scope.items = [
 'red',
 'blue',
 'yellow',
 'white',
 'blue'
];

这个数组blue就重复了,html这么遍历它

  • {{ item }}
  • 控制台就会抛出一个错误:

    点击错误链接到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才能遍历就白瞎了,继续往下看,发现官网给了一个解决的方案

    于是按照这个方案改了一下

  • {{ item }}
  • 刷新网页,内容被正常解析

    其实ng-repeat还是需要一个唯一的key,只不过你不track的话默认就是item本身,另外也只有在普通数据类型字符串,数字等才会出现这个问题,如果换成Object

    $scope.items = [
     ['red'],
     ['blue'],
     ['yellow'],
     ['white'],
     ['blue']
    ];

    html恢复为

  • {{ item }}
  • 执行结果:

    不明白的童鞋那就自己看看下面的运算表达式,猜猜结果是什么,然后在浏览器的控制台试一试你的答案是否正确

    [] === []

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


    推荐阅读
    • Spark 贝叶斯分类算法
      一、贝叶斯定理数学基础我们都知道条件概率的数学公式形式为即B发生的条件下A发生的概率等于A和B同时发生的概率除以B发生的概率。根据此公式变换,得到贝叶斯公式:即贝叶斯定律是关于随机 ... [详细]
    • 7月9日结束了我的小学期后,正式开始了我的假期生活。这个星期,初步了解了一些Java的基础知识。1.JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需 ... [详细]
    • 本文分析HashMap的实现原理。数据结构(散列表)HashMap是一个散列表(也叫哈希表),用来存储键值对( ... [详细]
    • [二分图]JZOJ 4612 游戏
      DescriptionInputOutputSampleInput44#****#****#*xxx#SampleOutput5DataConstraint分析非常眼熟࿰ ... [详细]
    • ASP.NET Core WebAPI 开发新建WebAPI项目  转
      转 http:www.cnblogs.comlinezerop5497472.htmlASP.NETCoreWebAPI开发-新建WebAPI项目ASP.NETCoreWebAPI ... [详细]
    • 步骤一:明确主打的核心目标用户群(对应产品侧的定位)这个核心目标用户群体是该产品成功挤进市场的切入点,甚至是撬动市场的支点和撬杠。市面上几乎很少有产品是专门给一个群体用而对其他群体 ... [详细]
    • npmimportuse这里我记录一下,视频地址和封面地址均引用的是服务器端得,本地的视频和图片 ... [详细]
    • UDP协议开发
      UDP是用户数据报协议(UserDatagramProtocol,UDP)的简称,其主要作用是将网络数据流量压缩成数据报形式,提供面向事务的简单信息传送服务。与TCP协议不同,UD ... [详细]
    • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
    • 1.数据准备#测试数组vectorc(5,34,65,36,67,3,6,43,69,59,25,785,10,11,14)vector##[1]53465366736436959 ... [详细]
    • 让日期区间更友好!把常见的日期格式如:YYYY-MM-DD转换成一种更易读的格式。易读格式应该是用月份名称代替月份数字,用序数词代替数字来 ... [详细]
    • 这篇文章主要简要记录了对于研发团队工作的质量 ... [详细]
    • AsyncDisplayKit2.0教程(下)
      AsyncDisplayKit2.0Tutorial:AutomaticLayout原文:AsyncDisplayKit2.0Tutorial:Automatic ... [详细]
    • MQ的使用
      安装环境:linuxredhatactivemq版本:5.8.01.从http:activemq.apache.orgdownload.html地址下载 ... [详细]
    • Python语言的缺点
      转载于:https:www.cnblogs.comfanweishengp111 ... [详细]
    author-avatar
    温德军46867
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有