odw*_*dwl 14 dart angularjs angular-dart
以下代码无效,因为该集合包含dupes:
<div ng-repeat="value in [4, 4]"></div>
Run Code Online (Sandbox Code Playgroud)
我认为以下内容应该有效,但遗憾的是不起作用:
<div ng-repeat="value in [4, 4] track by $index"></div>
Run Code Online (Sandbox Code Playgroud)
那是一个错误吗?
有没有办法在ng-repeat包含欺骗的集合中使用?
提前致谢,
奥利维尔
Kia*_*Rad 17
此功能已在较新版本中添加到AngularJS中.关键是,基本上你不应该迭代一些原始类型(例如数字),而是迭代一些复杂的对象.
根据我的理解,该ngRepeat指令检查引用而不是实际值,所以如果你迭代一些复杂的对象,它会工作,但如果你试图在一组原始类型上做到这一点,它很可能不会像"所有"一样长时间工作价值观彼此不同.
编辑
以下行是副本并从此链接粘贴(并确保您使用的是AngularJS的相对最新版本 - 我正在使用1.1.5并且它工作正常 - )
描述
在ngRepeat表达式中存在重复键时发生.禁止重复键,因为AngularJS使用键将DOM节点与项目关联.
默认情况下,集合通过引用进行键控,这对于大多数常见模型来说是理想的,但对于实际的基本类型(共享引用)可能会有问题.
例如,此无效代码可能会触发此问题:
Run Code Online (Sandbox Code Playgroud)<div ng-repeat="value in [4, 4]"> </div>要解决此错误,请确保集合中的项具有使用track by语法的唯一标识,以指定如何跟踪模型和DOM之间的关联.
要解决上面的示例可以通过使用track by $ index来解决,这将导致项目在数组中的位置而不是它们的值上键入:
Run Code Online (Sandbox Code Playgroud)<div ng-repeat="value in [4, 4] track by $index"></div>
| 归档时间: |
|
| 查看次数: |
8920 次 |
| 最近记录: |