AngularJs ng-repeat с длинным индексом (целое число) выдает ошибку - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть два объекта с одинаковой датой, но с идентификатором.(double):

{
  id: 1541672305932,
  date: 2018-01-01 11:11:11
}
{
  id : 1541672305933,
  date: 2018-01-01 11:11:11
}

, и я получил повторяющуюся ошибку, если дата точно такая же, но если id - это просто id, как.1,2 работает, я думаю, это длина идентификатора

как я могу это исправить, я должен использовать идентификатор в качестве индекса, мой повтор ng выглядит как

 <li id="item_{{event.id}}" ng-repeat="event in list track by event.id">

errorя получил

Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: event in historyList track by event.id, Duplicate key: 1541672305932, Duplicate value: 

{"date":"2018-11-08T10:18:25.000Z",id":1541672305932}

https://codepen.io/anon/pen/WYwbrv?editors=1010

1 Ответ

0 голосов
/ 08 ноября 2018

Вы можете попробовать трек по track by $index вместо трека по event.id

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    
    $scope.list =[
  {
    "id": '1234567894567',
    "date": "2014-03-13T05:53:12 -06:-30"
  },
  {
    "id": '123456789789',
    "date": "2014-12-15T01:32:39 -06:-30"
  },
  {
    "id": '123456789789',
    "date": "2014-12-15T01:32:39 -06:-30"
  }
]

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">


<li id="item_{{event.id}}" ng-repeat="event in list track by  $index">{{event.id}}</li>

</div>
...