如果我需要在公共组件中打开触发器,如何在Angular中将管理组件和公共组件解耦为单独的模块?

如果我需要在公共组件中打开触发器,如何在Angular中将管理组件和公共组件解耦为单独的模块?,angular,Angular,假设我的Angular应用程序有2个NgModules:PublicModule和AdminModulePublicModule包含主布局、页眉、页脚等。我的目标是: AdminModule: editSubtitinModalDialogComponent 公共模块: 标题组件(显示标题/副标题) AppModule:包括:[AdminModule,PublicModule] 如果我以管理员身份登录,我的HeaderComponent知道我处于管理员模式,并将在打开editSubtit

假设我的Angular应用程序有2个
NgModules
PublicModule
AdminModule
PublicModule
包含主布局、页眉、页脚等。我的目标是:

AdminModule

  • editSubtitinModalDialogComponent
公共模块:

  • 标题组件
    (显示标题/副标题)
AppModule
包括:[AdminModule,PublicModule]

如果我以管理员身份登录,我的
HeaderComponent
知道我处于管理员模式,并将在打开
editSubtituteInModalDialogComponent
的字幕旁边显示一个小图标。例如(用于演示的伪代码):

HeaderComponent模板:

<span class="edit-icon" (click)="showEditSubtitleDialog = true"></span>
<app-edit-subtitle-in-modal-dialog *ngIf="showEditSubtitleDialog"></app-edit-subtitle-in-modal-dialog>

到目前为止,只要两者都在同一个NgModule中,并且可以找到
EditSubtitleInModalDialogComponent
的选择器,就很好

但是如果
编辑SubtitleInModalDialogComponent
在并且仅在
AdminModule
中,我如何实现这一点呢?
想法是将所有AdminComponent完全分离,以便可以延迟加载它们


PS:我知道这会对路由有效,但这不是我想在这里做的。在一个可以从公共组件打开的对话框中具有功能是很重要的。

我想我找到了一个解决方案。我引入了一个名为“AdminPublicModule”的新模块,用于导出相关组件。公共模块导入此模块。这样我就有了一个单独的模块,可以延迟加载