假设 I'm ng-repeat
ing over images
,这是一个具有 asrc
和 acaption
属性的对象数组。
var images = [
{src: 'a.jpg', caption: 'a'},
{src: 'b.jpg', caption: 'b'},
{src: 'c.jpg', caption: 'c'},
{src: 'd.jpg', caption: 'd'},
{src: 'e.jpg', caption: 'e'},
{src: 'f.jpg', caption: 'f'},
{src: 'g.jpg', caption: 'g'},
{src: 'h.jpg', caption: 'h'},
{src: 'i.jpg', caption: 'i'},
{src: 'j.jpg', caption: 'j'},
];
假设可能有重复的图像,所以src
+caption
组合不能确保唯一性。我想track by
,但似乎没有其他方法可以做到这一点$index
。
$index
对我来说似乎是一个糟糕的解决方案。想象一下,第一张图片 (a) 被删除了。然后将更改所有后续图像的索引,因此必须重新渲染整个列表。这对于包含 10 个项目的列表来说并不算太糟糕,但对于更大的列表来说却是这样。
想法?
另外,如果
src
+caption
被确保是唯一的呢?我怎样才能拥有track by
多个属性?track by
将被跟踪的属性放在 上是否有效$$watchers
?就像是track by image.id
在做类似的事情$scope.$watch(image.id, cb)
?