ng-repeat指令中使用track by子语句
来源:互联网 发布:新源代源码论坛 编辑:程序博客网 时间:2024/04/29 22:46
我们可以使用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。下面的代码就会报错:
这是因为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}];
原网址:http://blog.csdn.net/aitangyong/article/details/44100921
- ng-repeat指令中使用track by子语句
- (十二)ng-repeat指令中使用track by子语句解决重复数据遍历的错误
- ng-repeat指令中使用track by子语句解决数据重复遍历的错误
- ng-repeat指令中使用track by子语句解决重复数据遍历的错误
- angular1中使用track by优化ng-repeat效率
- angular中ng-repeat及track by
- 在使用angularjs过程,ng-repeat中track by的作用
- angular中为什么会使用track by 实现ng-repeat嵌套
- 关于ng-repeat的track by $index
- ng-repeat指令
- ng-repeat指令
- 05-指令ng-repeat
- (十三)通过DOM事件DOMNodeRemoved,看ng-repeat的性能问题以及track by的作用
- ng-repeat 中的 track by $index 解决相同的ID的对象
- AngularJS中ng-app、ng-model、ng-bind、ng-init、ng-repeat、自定义指令
- AngularJS中使用ng-repeat的index
- AngularJS中ng-repeat使用心得
- AngularJS:如何使用自定义指令来取代ng-repeat
- LSI 9361-8i RAID卡OptRom选项解释_RAIDLevel_CreateRAID
- 解决vc2008 utf8中文字符串报错 C2001常量中有换行符
- ROS学习笔记(七)
- 模拟实现C库函数:strncpy、strncat和strncmp
- 正负脉宽调制信号发生器设计
- ng-repeat指令中使用track by子语句
- 软件调试笔记28
- Andrew Ng机器学习笔记ex4 神经网络学习
- AI笔记-2-tensorflow读取图片的方法
- iOS中遇到libc++abi.dylib`__cxa_throw:
- Gson解析数据为null的错误
- jQuery源码解析-整体架构
- APP加密,让你的移动应用更安全!
- Android Studio 与 Unity3d交互。归纳版。