У нас есть основное угловое приложение, которое ссылается на библиотеку, представляющую подобласть основного приложения.
Мы хотели иметь возможность определять отдельные маршруты в нашей библиотеке.
Например:
- приложение имеет корневые пути: / app
- библиотека имеет дочерние пути: / library
После перехода к маршруту / app / library его следует перенаправить накомпонент хранится в библиотеке.
Мы добились этого с помощью отложенной загрузки.Это работает, только когда вы соединяете маршруты, используя свойство LoadChildren Route в главном приложении.
Мы также были вынуждены применить обходной путь, предложенный Angular team Сбой отложенной загрузки модуля из пакета библиотеки, расположенного в node_modulesпостроить - что является использованием модуля прокси / оболочки для ленивой загрузки библиотеки в угловом рабочем пространстве или узловых модулях.
В любом случае, у нас все работает.
И теперь начинается проблема:
Угловые события жизненного цикла (например, 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 },