Здесь происходит то, что использование геттеров в шаблонах Angular может привести ко многим проблемам, которые мы не ожидали.
Я говорю об этих геттерах в вашем коде:
public get Judete(): any[] {
return [{auto: "AB", nume: "Alba"}, {auto: "AR", nume: "Arad"}...];
}
Угловая проверка привязок шаблона и выполнение всех методов получения в каждом цикле обнаружения изменений.Этот шаблон получает новый экземпляр массива Judete
с новыми экземплярами каждого элемента при каждой проверке.
Теперь давайте посмотрим, где вы используете этот массив.
*ngFor="let item of Judete"
Угловой встроенный * 1012Директива * использует специальный алгоритм для поиска изменений в вашем массиве с помощью IterableDiffers
.Это различие обнаруживает, что ваш массив является абсолютно новым массивом в каждом цикле обнаружения изменений, что приводит к элементам рендеринга.Это означает, что новые элементы SelectOptionComponent создаются при каждом запуске обнаружения изменений, и вы теряете подписки для вашего ContentChildren
Таким образом, решение должно быть простым: просто определитеваши массивы один раз вместо использования геттеров:
Judete = [{auto: "AB", nume: "Alba"}, {auto: "AR", nume: "Arad"}, ...];
Forked Stackblitz