Я столкнулся с очень странным поведением детектора изменений (с OnPu sh). Я даже не могу объяснить это себе и не знаю, как это исправить. Тем не менее, я воспроизвел это поведение в очень простом примере на stackblitz
https://stackblitz.com/edit/angular-h28cw8
Есть три компонента: основной app
компонент, data
компонент и loading indicator
компонент. Основной компонент может отображать компонент data
через <router-outlet>
, когда пользователь щелкает ссылку Go to data
. Также есть сервис (он же состояние приложения). Когда пользователь нажимает Go to data
, компонент data
запрашивает эту услугу для данных, которые загружаются с некоторой задержкой. Для эмуляции этой задержки я использую таймер rx js, но с HttpClient
поведение абсолютно одинаковое. Данные и значения загрузки связаны с использованием async
трубы. Но по какой-то причине данные отображаются так, как ожидалось, а loading
- нет (лучше сказать, что они работают время от времени, но не всегда). Это приводит к тому, что индикатор загрузки не появляется на экране. Я также записываю значения в консоль, где легко видеть, что наблюдаемое loading$
излучает значение, но привязка @Input
по какой-то причине не работает. Почему так работает и как это исправить?