Как я могу использовать компонент другого модуля в текущем модуле? - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть два модуля. Мне нужно показать компонент в диалоговом окне. Но этот компонент импортирует несколько компонентов (более 20). Так что если бы был один компонент, я бы создал его в общем модуле. Но это сложнее. Я попытался экспортировать компонент из другого модуля. Но это вызывает у меня ошибку, потому что это не объявлено в компонентах ввода в этом модуле.

@NgModule({
declarations: [
    DocumentEditComponent,
    TestimonialLieuComponent,
    CommNetworkAddDialogComponent,
    GoalComponent,
    InterviewGuideComponent,
    JobCommunicationComponent,
    LearningComponent,
    MatchConfigComponent,
    PayDetailComponent,
    PerksAndBenefitsComponent,
    QuestionnaireComponent,
    VendorComponents,
    WorkRelatedComponent,
    ConfigurationComponent,
    BasicInfoComponent,
    AddDialogComponent,
    JdmDetailAddComponent,
    JdmDetailComponentComponent,
    InterviewGuideMapComponent,
    AdminOrgJdmComponent,
    AdminOrgJdmDetailComponent,
    OrgJdmAddComponent,
    OrgInterviewGuideComponent,
    OrgExperienceComponent,
    OrgCommNetworkComponent,
    OrgWorkRelatedComponent

],
exports: [
  TestimonialTemplateComponent,
  TestimonialComponent,
  AdminOrgJdmDetailComponent
],
imports: [
    CommonModule,
    TapCommonModule,
    RecruitmentConfigRoutingModule
],
entryComponents: [
    PhysicaldemandEditOrgComponent,
    InterviewProcessComponent,
    AssessmentsComponent,
    CareerPathComponent,
    DocumentComponent,
    ExperienceComponent,
    GoalComponent,
    InterviewGuideComponent,
    JobCommunicationComponent,
    LearningComponent,
    MatchConfigComponent,
    PayDetailComponent,
    PerksAndBenefitsComponent,
    QuestionnaireComponent,
    VendorComponents,
    WorkRelatedComponent,
    ConfigurationComponent,
    AddDialogComponent,
    JdmDetailAddComponent,
    InterviewGuideMapComponent,
    OrgJdmAddComponent,
    AssessmentOrgAddComponent,
    CareerPathOrgAddComponent,

],
providers: []
})
export class RecruitmentConfigModule {
}

И вызываю компонент в диалоговом окне

openJD(): void {
let dialogRef = this.dialog.open(AdminOrgJdmDetailComponent, {
  width: '80%',
  data: this.jobDescription,
  height: '90%',
  disableClose: true
});
dialogRef.afterClosed().subscribe(result => {

});

}

Это приводит меня к ошибке

VM60232 JobRequisitionAddFormComponent. ngfactory. js: 230 Ошибка: не найдена фабрика компонентов для AdminOrgJdmDetailComponent. Вы добавили его в @ NgModule.entryComponents?

Любой другой способ решить эту проблему. Пожалуйста, дайте мне знать

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Я бы попытался добавить AdminOrgJdmDetailComponent в массив entryComponents. Как говорится в ошибке, там ее нет. Поскольку вы загружаете его динамически, я думаю, что вы должны указать Angular, чтобы загрузить его обязательно.

...
entryComponents: [
    ...
    AdminOrgJdmDetailComponent 
],
...

Более подробную информацию можно получить здесь .

0 голосов
/ 27 февраля 2020

Вам необходимо добавить AdminOrgJdmDetailComponent в entryComponents в @NgModule, например:

Пример:

entryComponents: [
    PhysicaldemandEditOrgComponent,
    InterviewProcessComponent,
    AssessmentsComponent,
    CareerPathComponent,
    DocumentComponent,
    ExperienceComponent,
    GoalComponent,
    InterviewGuideComponent,
    JobCommunicationComponent,
    LearningComponent,
    MatchConfigComponent,
    PayDetailComponent,
    PerksAndBenefitsComponent,
    QuestionnaireComponent,
    VendorComponents,
    WorkRelatedComponent,
    ConfigurationComponent,
    AddDialogComponent,
    JdmDetailAddComponent,
    InterviewGuideMapComponent,
    OrgJdmAddComponent,
    AssessmentOrgAddComponent,
    CareerPathOrgAddComponent,
    AdminOrgJdmDetailComponent //<-- here

],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...