Итерация по массиву в IE8 с Angular.js и ng-repeat включает в себя дополнительный элемент

#javascript #angularjs #internet-explorer-8

#javascript #angularjs #internet-explorer-8

Вопрос:

Я только начал создавать свое первое приложение Angular, и мне нужна поддержка IE8. Я только что проверил IE8 после некоторого быстрого прототипирования, и я столкнулся со своей первой проблемой, которая кажется слишком простой задачей, чтобы уже были проблемы. Но это IE8. В любом случае я просто выполняю простой ng-repeat перебор массива объектов с 3 элементами в нем, но IE8 отображает 4-й элемент без содержимого в нем.

Вот часть моего JSON:

 "members": [
  {
    "first_name": "Jack",
    "last_name": "G",
    "initials": "JG",
    "email": "jack@g.com",
    "manager": true
  },
  {
    "first_name": "Guy",
    "last_name": "One",
    "initials": "GO",
    "email": "guy@one.com",
    "manager": false
  },
  {
    "first_name": "Guy",
    "last_name": "Two",
    "initials": "GT",
    "email": "joe@g.com",
    "manager": true
  },
]
  

и мой ng-repeat код:

   <div id="committee-members">
    <div class="committee-member" data-ng-repeat="member in members">
     {{member.initials}}
    </div>
    <span>
      <a class="edit-committee-members" data-ng-href="" title="">Edit</a>
    </span>
  </div>
  

Кто-нибудь еще испытывал это?

Спасибо.

Комментарии:

1. Видите конечную запятую в вашем массиве? IE 8 добавит неопределенный элемент в конец массива. Длина массива будет равна 4 , даже если вы думаете, что у вас всего 3. Эта проблема возникала бы и в других браузерах, если бы у вас было более одной конечной запятой. Например, в Chrome: [,,,,] имеет длину 4 и [1,] имеет длину 1

2. «конечная запятая» находится сразу после третьего элемента в ваших данных JSON.

3. Ах, глупая ошибка. Хотя это интересно, полезно знать. Спасибо.

4. @Ian вы должны указать в качестве ответа, чтобы получить оценку…

5. @DanDoyon Спасибо, но я действительно думаю, что этот вопрос следует закрыть, поскольку проблема заключалась в опечатке