Инициализатор в Angular - перед загрузкой AppComponent (первый компонент) сделайте несколько вызовов покоя в начале приложения. - PullRequest
0 голосов
/ 26 апреля 2018

Я хочу сделать набор вызовов методов (вызовы REST для заполнения представлений) при запуске приложения.

Таким образом, независимо от маршрута, используемого для загрузки приложения (в случае, если пользователь копирует вставкиссылки на различные маршруты непосредственно в браузере), все представления заполняются перед отображением.

В настоящее время у меня есть AppInitializerService, который вставляется в конструктор компонента, на который указывает каждый маршрут.

Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 26 апреля 2018

Создайте базовый класс для компонента и, в его методе ngOnInit, вызовите службу appInitializer для настройки требуемой инфраструктуры.Все компоненты теперь будут производными от этого класса и будут инициализированы

. Однако убедитесь, что инициализация действительна только для времени жизни компонента.Если вы запускаете код с каждым компонентом при каждой инициализации, во время рабочего процесса вы в конечном итоге настроите инфраструктуру несколько раз.

Но если вы хотите, чтобы инициализация происходила один раз, например, загрузка ресурсов, то CanActivate в AppComponent будет возможенвыбор.Однако canActivate - это скорее API-интерфейс требований к разрешению, а не цель инициализации.Собственный конструктор AppComponent находится в лучшем положении.Даже ngOnInit произойдет после того, как привязки данных будут выполнены, так что это будет отложено для требования.

...