【发布时间】:2019-01-02 08:35:25
【问题描述】:
当前设置 我正在使用具有以下结构的 Angular 7.1.0 - 具有三个库项目的根应用程序或父应用程序,如下所示:
app (root)
|- corelib (project)
|- lib1 (project)
|- lib2 (project)
- 如图所示
app是具有库项目corelib、lib1和lib2的根角度项目。 - corelib 项目包含所有公共代码,并作为对 lib1 和 lib2 项目的依赖项。
-
app有自己的路由模块来加载 lib1 和 lib2 项目中的组件。 - 请注意,
corelib项目不包含任何路由。但是它确实包含HttpInterceptor服务。 -
lib1项目目前不需要任何路由,主要用作仪表板。它使用corelib作为依赖项。 -
lib2项目(使用corelib作为依赖项)需要通过loadChildren()进行路由和延迟加载路由,如下所示(摘自app-routing.module.ts)。
const routes: Routes = [
{ path: '', redirectTo: 'some/path1', pathMatch: 'full' },
{ path: 'some/path1', component: Lib1FirstComponent },
{ path: 'some/path1/path2', loadChildren: () => Lib2Module }
];
当我运行我的项目时,默认 app.component 在启动期间加载 - 加载 Lib1FirstComponent - 它进行 http 调用以显示一些 JSON 数据。它工作正常 - 它调用corelib中的HttpInterceptor服务并初始化标头、参数等,并成功完成请求。
问题:
我的问题是 lib2 项目确实加载了默认组件,并且它还在 ngOnInit() 方法中发出了一个 http 请求 - 但是它似乎根本无法访问我的 HttpInterceptor 服务 - 我无法调试我的 HttpInterceptor在corelib 为这个项目服务。但是,似乎标头和参数已正确发送,我可以通过console.log 查看路径、参数和输出,并发现服务调用已成功完成。我正在尝试实现一个通用的覆盖服务来显示消息加载......而我的 http 调用正在加载。
我不明白为什么我无法在我的lib2 项目中通过调试模式访问我的 HttpInterceptor 服务。
你能告诉我我在这里缺少什么吗?
任何帮助表示赞赏!
【问题讨论】:
标签: angular shared-libraries angular7