Angular 7-ngOnInit没有被调用

时间:2019-03-01 00:14:44

标签: angular typescript lazy-loading angular-lifecycle-hooks

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

我们希望能够在我们的库中定义单独的路由。

例如:

  • 应用程序具有根路径:/ app
  • 库具有子路径:/ library

在路由/ 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 },

0 个答案:

没有答案