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 },

0 ответов

Другие вопросы по тегам