Angular 7 - ngOnInit не вызывается
У нас есть основное угловое приложение, которое ссылается на библиотеку, представляющую подобласть основного приложения.
Мы хотели иметь возможность определять отдельные маршруты в нашей библиотеке.
Например:
- приложение имеет корневые пути: /app
- библиотека имеет дочерние пути: / библиотека
После перехода в каталог / приложение / библиотека, он должен перенаправить на компонент, хранящийся в библиотеке.
Мы достигли этого, используя ленивую загрузку. Он работает только при подключении маршрутов с помощью свойства loadChildren в Route в главном приложении.
Мы также были вынуждены применить обходной путь, предложенный командой Angular. Не удается собрать модуль Lazy, загружаемый из пакета библиотеки, расположенного в node_modules - использование модуля proxy / wrapper для отложенной загрузки библиотеки в угловом рабочем пространстве или модулях узла.
Во всяком случае, у нас все работает.
И теперь проблема начинается:
Угловые события жизненного цикла (например, ngOnInit) не работают в компонентах нашей библиотеки. Когда мы обращались к библиотеке, используя нетерпеливую загрузку (и в то же время потеряли желаемую нами маршрутизацию), угловые хуки начали работать просто отлично. Что здесь может быть не так?
Это проблема Angular? Мы хотели, чтобы наше приложение было хорошо структурировано, и поэтому мы разделили некоторые области на отдельные библиотеки. Однако мы близки к тому, чтобы сдаться и переместить весь код в основное приложение.
Редактировать:
Маршрутизация в app.module (forRoot, ленивая загрузка):
export const routes: Routes = [
{ path: 'app', loadChildren: './lazy/lazy-wrapper.module#LazyWrapperModule' },
];
Маршрутизация в (LazyWrapperModule, который находится внутри основного приложения) (forChild):
{ path: '', component: LibraryComponent, pathMatch: 'full' },
Маршрутизация в библиотеке (forChild):
{ path: 'library', component: TargetComponent },