我有ngx-bootstrap
模态成分。此模式用于shared
文件夹中。我在FirstModalComponent
中使用此DashboardModule
,例如:
// Dashboard.module.ts
import { FirstModalComponent } from '../../shared/modals/first-modal/first-modal.component';
@NgModule({
declarations: [
DashboardComponent
],
imports: [
CommonModule,
ReactiveFormsModule,
RouterModule.forChild(routes),
SharedModule
],
entryComponents: [
FirstModalComponent
]
});
如果我想将FirstModalComponent
做成模块,该如何在DashboardModule
中实现它并在entryComponents
中定义它?
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FirstModalModule } from './first-modal/first-modal.module';
@NgModule({
declarations: [],
imports: [
CommonModule,
FirstModalModule
],
exports: [
CommonModule,
FirstModalModule
]
})
export class ModalsModule { }
然后,我在ModalsModule
中导入/导出此SharedModule
,并尝试将共享模块导入DashboardModule
。
现在如何在仪表板中将FirstModalComponent
注入entryComponents
?
当我尝试导入FirstModalComponent
并放入entryComponents
:Component is part of the declaration of 2 modules
时出现错误。
P.S。我不确定将其作为模块是一个好主意。
答案 0 :(得分:1)
您应该仅在一个FirstModalComponent
中声明module
。它可以是一个模块的一部分,并可以由同一模块导出,并且可以将其定义为entryComponent
。
对于您的情况,将其声明为
entryComponents: [
FirstModalComponent
]
FirstModalModule
,并从FirstModalComponent
导出FirstModalModule
。当您在FirstModalModule
或应用程序中的任何其他模块中导入ModalsModule
时,它将按预期工作。
请确保FirstModalModule
和ModalsModule
导出了SharedModule
,具体取决于您的用途。如果要通过将SharedModule
导入到DashboardModule
中来使用它,则必须从SharedModule
导出。