Угловой: способ узнать, когда запущено представление всех дочерних компонентов

#javascript #html #angular #dom

Вопрос:

Допустим, у меня есть основной app.component <router-outlet/> компонент, и этот компонент может иметь несколько вложенных компонентов. Некоторые из них очень легкие, некоторые из них содержат тонны компонентного кода множество объектов DOM, таких как изображения и т. Д.

Это выглядит так, когда я использую на своем основном app.component

 public ngAfterViewInit(): void {
  console.log('loaded: ', new Date());
}
 

он срабатывает мгновенно после ввода представления этого компонента, не принимая во внимание все вложенные дочерние элементы (я не могу жестко ngAfterViewInit кодировать везде — у меня более 100 компонентов).

Есть ли какой-нибудь хороший способ узнать, когда все представления компонентов приглашаются в угловой?

Кроме того, есть ли какой-либо хороший способ узнать, когда все изображения загружены на текущую страницу маршрута?

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

1. стакблиц, пожалуйста?>

2. @AakashGarg это действительно необходимо? это больше об архитектуре и общих угловых вещах… чем об одном реальном примере

3. если вы можете привести мне пример, я смогу более четко понять, что происходит. вот почему это необходимо.

Ответ №1:

Я предполагаю, что не все компоненты загружаются при запуске app.component.ts. речь больше идет о модулях, когда вы нажимаете на лениво загруженный модуль, все его компоненты инициируются и так далее.

Ответ №2:

Когда ваш корневой компонент загружен, это сигнал о том, что все дочерние компоненты загружены на этот компакт-диск. С компонентами маршрутизатора вам необходимо реализовать ту же логику(когда загружается корень текущего маршрута, загружаются все дочерние элементы).

Пример ссылки со счетчиком загруженных изображений, счетчиком розеток маршрутизатора и как работает ViewInit