У меня есть модальный компонент 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 в Dashboard?
Я получаю сообщение об ошибке, когда пытаюсь импортировать FirstModalComponent и помещать в entryComponents: Component is part of the declaration of 2 modules.
P.S. Я не уверен, что это хорошая идея, чтобы сделать его как модуль.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны объявлять FirstModalComponent только в одном module. Он может быть частью одного модуля и экспортироваться им, а также может быть определен как entryComponent для своего собственного модуля.
Для вашего случая объявите его как
entryComponents: [
FirstModalComponent
]
для FirstModalModule и экспортировать FirstModalComponent из FirstModalModule. Он будет работать, как и ожидалось, когда вы импортируете FirstModalModule внутри ModalsModule или любого другого модуля в вашем приложении.
Убедитесь, что этот FirstModalModule экспортируется вашим ModalsModule и SharedModule в зависимости от вашего использования. если вы хотите использовать его, импортировав SharedModule в свой DashboardModule, его нужно экспортировать из SharedModule.