Wil*_*ire 12 angularjs angularjs-ng-repeat
我最近得到了控制台错误`
错误:不允许在转发器中使用[ngRepeat:dupes]重复项.使用'track by'表达式指定唯一键...
然后我使用'track by $index'了,问题解决了......
但这让我思考......你有没有理由不想track by $index在ng-repeat中使用?
我已经阅读过像这样的问题以及其他文章,但似乎几乎所有的文章都只谈论使用的优点'track by'.
有人可以列出缺点并举例说明你何时不想使用track by $index?
geo*_*awg 11
有多种理由可以避免 track by $index
track by $index时避免使用track by $index当有唯一的属性标识符时避免使用track by $indextrack by $index时避免使用该文档明确指出track by $index在使用一次性绑定时应避免使用.
来自Docs:
track by $index当重复的模板包含一次性绑定时,请避免使用.在这种情况下,nthDOM元素将始终与nth数组的项匹配,因此即使相应的项更改,也不会更新该元素上的绑定,从而导致视图与基础数据不同步.
track by $index当有唯一的属性标识符时避免使用track by $index当有唯一的属性标识符可以使用时,请避免使用.使用全部唯一的对象时,最好让ng-repeat自己使用自己的跟踪而不是覆盖track by $index.
来自Docs:
如果使用具有唯一标识符属性的对象,则应使用此标识符而不是对象实例进行跟踪.如果稍后重新加载数据,
ngRepeat则不必为已呈现的项重建DOM元素,即使集合中的JavaScript对象已替换为新对象.对于大型集合,这可以显着提高渲染性能.
track by $index在对象数组中添加和删除对象时,我也遇到了问题.
| 归档时间: |
|
| 查看次数: |
9028 次 |
| 最近记录: |