ng-repeat的重新渲染问题

简单理解就是使用ng-repeat循环遍历的数组会给每一个元素添加$$hashkey,用于绑定DOM元素,如果数组被替换,这个值改变的话DOM元素就会重新渲染。

  • 如果数组中的值是数字、字符串等基本数据类型的话,每个值的id(理解为$$hashkey)就是他本身的值,angual不允许出现箱通的值,因此r就会报错。

  • 避免报错的方法,定义自己track by表达式, 即track by item.id or $index,一个是业务自己的id,一个是自增。

  • 因此如果使用 index i n d e x , 因 为 是 自 增 , 如 果 对 数 组 进 行 某 些 操 作 , 例 如 删 除 , 每 一 个 元 素 自 身 和 index并不是紧密绑定的,这回导致某些跟$index相绑定的逻辑变得不适用,因此使用item.id,每个元素紧密绑定一个自身的值,且值不同,
    {id: new Date().getTime()}

参考:angular ng-repeat中DOM的重新渲染机制(项目中遇到问题)
ng-repeat循环数组,数组内容相同时报错及解决

你可能感兴趣的:(angular,angualr,ng-repeat,渲染,循环数组)