如果我需要在公共组件中打开触发器,如何在Angular中将管理组件和公共组件解耦为单独的模块?
假设我的Angular应用程序有2个如果我需要在公共组件中打开触发器,如何在Angular中将管理组件和公共组件解耦为单独的模块?,angular,Angular,假设我的Angular应用程序有2个NgModules:PublicModule和AdminModulePublicModule包含主布局、页眉、页脚等。我的目标是: AdminModule: editSubtitinModalDialogComponent 公共模块: 标题组件(显示标题/副标题) AppModule:包括:[AdminModule,PublicModule] 如果我以管理员身份登录,我的HeaderComponent知道我处于管理员模式,并将在打开editSubtit
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”的新模块,用于导出相关组件。公共模块导入此模块。这样我就有了一个单独的模块,可以延迟加载