Как использовать компонент из модуля в entryComponents другого модуля? - PullRequest
3 голосов
/ 22 марта 2019

У меня есть 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.

PS Я не уверен, чтоэто хорошая идея сделать его модулем ..

1 Ответ

2 голосов
/ 22 марта 2019

Вы должны объявить FirstModalComponent только в одном module.Он может быть частью одного модуля и экспортироваться тем же самым и может быть определен как entryComponent для его собственного модуля.

В вашем случае объявите его как

entryComponents: [ FirstModalComponent ]

для FirstModalModule и экспорт FirstModalComponent из FirstModalModule.Он будет работать должным образом при импорте FirstModalModule внутри ModalsModule или любого другого модуля в вашем приложении.

Убедитесь, что FirstModalModule экспортируется вашими ModalsModule и SharedModule в зависимости от вашегоиспользовать.если вы хотите использовать его, импортировав SharedModule в DashboardModule, его необходимо экспортировать из SharedModule.

...