ng-repeat track by

scope数组数据发生变化时,界面会自动刷新,刷新方式有2种:

1.删除之前所有存在的dom,然后重新生成dom。

2.重用之前的dom元素,仅仅更新dom元素的属性。

三种情况:

一、数组属性值发生变化,使用track by 结果对比

1.使用ng-repeat = "a in arrayList"

2.使用 track by $index

3.使用 track by id

结果对比:使用1会将dom元素全部删除,重新生成,使用2,3只会发生更新

二、数组长度不变、顺序改变

1.track by $index 只会更新dom,不会发生dom删除事件

2.track by id 会发生dom删除,dom增加事件

三、数组长度改变

两种方式均会发生dom删除

你可能感兴趣的:(ng-repeat track by)