Я использую ngForOf для перечисления дат, каждая дата представлена свойством id
, которое на самом деле является ее индексом + 1. Все даты представлены в виде объекта в массиве. Кроме того, каждая дата является экземпляром компонента.
Дело в том, что ngForOf заключается в том, что всякий раз, когда я удаляю дату из списка, вся DOM обновляется, и идентификаторы назначаются снова и снова.
<app-date *ngFor="let date of dates | callback: filterDates; index as i" (delete)="del(i)"></app-date>
Проблема
Теперь, когда я говорю «удалить», я не объединяю/удаляю дату из массива, а устанавливаю для свойства action
даты значение "deleted"
. Это сделано для того, чтобы мне не приходилось делать HTTP-запросы для каждой даты, чтобы удалить ее из базы данных.
Как только action
становится "deleted"
, дата не отображается в DOM, но все еще присутствует в массиве. Итак, в следующий раз, когда DOM обновится, он переназначит идентификаторы, и теперь у меня будут дубликаты идентификаторов в массиве. Это имеет много последствий, самое большое из которых заключается в том, что я не могу удалить даты с одним и тем же идентификатором.
Я также пытался изменить идентификатор даты для каждого события удаления, но это также портит массив.
Важно
Я знаю о trackBy
, но я не понимаю, как я могу применить его для решения этой проблемы, и не вижу проблемы в Интернете, связанной с этим.
Спасибо.