假设 I'm ng-repeating 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)?