я близок к крику о помощи.
Есть ангулар компонент, в темплейте input type=file, по событию (change) обрабатываем прикреплённый файл, с помощью FileReader считываем байты, которые ловим в reader.onload.
После получения данных в reader.onload нужно обновить внутренние переменные, влияющие на ngIf в темплейте. Но темплейт не обновляется ни в какую.
Выяснил, что дело в ngZone, FileReader не обёрнут в зону ангулара, из-за чего теряется контекст.
Пробую по-всякому, ничего не помогает. Если те же переменные в другом месте изменить, всё обновляется штатно.
Оборачиваю всю работы с FileReader в zone.runOutsideAngular, затем в onload делаю zone.run.
Делаю cdr.markForCheck и detectChanges.
Никак. Кто сталкивался с таким? Пожалуйста, помогите.
делал точно так же, detect changes работал, код в студию
Обсуждают сегодня