Фабрика компонентов не найдена для... Открытие модального окна

У меня есть одна страница, которая должна быть загружена внутри модального окна, эта страница является дочерней с другой страницы (я думаю, это не имеет значения, но...) дело в том, что когда я пытаюсь создать модальное окно, я получаю сообщение об ошибке ниже

ERROR Error: Uncaught (in promise): Error: No component factory found for TarefasDetalhePage. Did you add it to @NgModule.entryComponents?

Но когда я иду в свой AppModule, чтобы поместить эту страницу в entryComponents, я получаю эту ошибку:

Component TarefasDetalhePage is not part of any NgModule or the module has not been imported into your module.

Вызов модального окна находится на моей странице HomePage.ts:

  async showModal(id){
    const modal = await this.modalController.create({
     component: TarefasDetalhePage,
     componentProps:{
       custom_id: id
     }
    });
    modal.present();
  }

Вот разметка:

    <ion-list *ngIf = "interna === true" >
    <ion-item (click) = "showModal(tarefa.id)"   routerDirection = "forward" detail *ngFor = "let tarefa of tarefasInternas" class = "in-list item ion-focusable item-label hydrated">
      <ion-label>
        <h2>#{{tarefa.numero}} - {{tarefa.descricao}}</h2>
        <h3>{{tarefa.inicio}} - {{tarefa.fim}}</h3>
        <p>{{tarefa.comentarios}}</p>
      </ion-label>
    </ion-item>
  </ion-list>

Это моя структура:

Фабрика компонентов не найдена для... Открытие модального окна

Репо на гитхабе: https://github.com/tiagosilveiraa/PManager

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
5
0
2 737
2

Ответы 2

Чтобы открыть component в модальном окне, вы должны добавить component в app.module.js как entryComponent.

Ваше сообщение error показывает это.

Я пробовал, но это работает только тогда, когда импортирована страница внутри страницы в app.module.ts

Tiago Silveira 06.03.2019 14:05

Вы должны отредактировать NgModule в своем tarefas.module.ts. Пожалуйста, добавьте остальные по мере необходимости.

@NgModule({
    imports: [
        MatDialogModule
    ],
    declarations: [
        ComponentName
    ],
    providers: [
        { provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: { hasBackdrop: true, closeOnNavigation: true } }
    ],
    entryComponents: [
        ComponentName
    ],
    exports: [
        ComponentName
    ],
})

export class Module {

}

Другие вопросы по теме