Угловые 2 — крючки жизненного цикла для ленивых загружаемых модулей

Вопрос:

Я занимаюсь разработкой приложения с использованием ленивых загружаемых модулей Angular.

У меня простой вопрос:

Можно ли поймать событие при загрузке модуля?

Например, OnInit. Эта ссылка объясняет крючки жизненного цикла, но она предназначена только для компонентов: крючки жизненного цикла для компонентов

Я не могу найти документацию, которая объясняет, как подключаться к модулям.

У кого-то есть идея, как это решить?

благодаря

Лучший ответ:

Конструктор ленивого загруженного модуля должен сделать это

@NgModule({...})
export class MyLazyModule {
  constructor(/* service injection here if required */) {
    console.log('lazy module loaded');
  }
}

Ответ №1

Существует два события маршрутизатора, которые вы можете использовать: RouteConfigLoadStart и RouteConfigLoadEnd. Также вы можете использовать LoadChildrenCallback. Они могут не делать то, что вы хотите, но все же можете быть полезны.

Также вы можете использовать следующий трюк:

@NgModule({
imports        : [BrowserModule, FormsModule, RouterModule, ROUTING],
providers      : [
{provide: CustomService, useClass: CustomService},
...
]
})
export class AppModule implements OnInit
{
//force CustomService service creation or inject other app service,
// so use can use it to fire event or do smth.
constructor(handler:CustomService)
{
console.log('handler', handler);
handler.fire('module created');
}
}

Оцените статью
TechArks.Ru
Добавить комментарий