0

我们确实有一个主要的角度应用程序,它引用了代表主应用程序子区域的库。

我们希望能够在我们的库中定义分离的路线。

例如:

  • app 有根路径:/app
  • 库有子路径:/library

在路由 /app/library 之后,它应该重定向到存储在库中的组件。

我们通过使用延迟加载实现了这一点。它仅在您使用主应用程序中 Route 的“loadChildren”属性连接路由时才有效。

我们还被迫应用 Angular 团队建议的解决方法从位于 node_modules 的库包中延迟加载模块无法构建- 这是使用代理/包装器模块来延迟加载角度工作区或节点模块中的库。

不管怎样,我们都搞定了。

现在问题开始了:

Angular 生命周期事件(例如: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 },
4

0 回答 0