我们确实有一个主角度应用程序,该应用程序引用了代表主应用程序子区域的库。
我们希望能够在我们的库中定义单独的路由。
例如:
在路由/ app / library之后,它应该重定向到存储在库中的组件。
我们通过使用延迟加载实现了这一点。仅当您在主应用中使用“路线”的“ loadChildren”属性连接路线时,该功能才起作用。
我们还被迫应用Angular团队Lazy loading module from library package located in node_modules fails to build建议的解决方法-使用代理/包装器模块以在角工作区或节点模块中延迟加载库。
无论如何,我们都能正常工作。
现在问题开始了:
角度生命周期事件(例如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 },