これは、とプロパティng-repeatをimages持つオブジェクトの配列です。srccaption
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)ますか?