Ng repeat 使用 track by $index 或唯一字段?

10 浏览
0 Comments

Ng repeat 使用 track by $index 或唯一字段?

我有两个对象:\n

$scope.copy;
$scope.myObject;

\n现在,每当用户更改任何内容时,都会反映在myObject变量中。\n后来,我想要比较两个作用域变量是否相等,如下所示:\n

angular.equals($scope.copy,$scope.myObject);

\n但问题在于,无论何时用户更新任何内容,Angular.JS都会添加哈希键,因此由于这个原因,我的比较失败了。\n所以根据我的研究,我发现我需要到处添加track by来删除$hashkey,并根据以下参考添加track by来提高性能:\nhttps://www.timcosta.io/angular-js-object-comparisons/\nWhat is the $$hashKey added to my JSON.stringify result\n但我有一些困惑,希望有人能解答:\n

    \n

  1. 无论我更新任何文本框的值,Angular是否会在JSON中添加哈希键,还是只在ngrepeat的情况下添加?
  2. \n

  3. 在ngrepeat中,我是否可以盲目地添加track by $index,还是我需要添加唯一的字段,如track by id,但在某些情况下我不知道?值是否唯一或重复,所以我是否可以在每个地方都添加track by $index?
  4. \n

  5. 如果我盲目地添加track by $index而不是track by id(即字段的名称),那么我是否会有相同的性能优势,没有任何问题,就像使用track by id一样?
  6. \n

0