Невозможно динамически загрузить или отложенную загрузку компонента в модальном режиме - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь загрузить компонент через Ionic ModalController, просто указав имя класса 'LocationComponent' вместо класса.

При запуске модального * 1004 я получаю следующую ошибку*

No component factory found for LocationComponent.
Did you add it to @NgModule.entryComponents?

Однако, если я вместо этого использую класс, я смогу загрузить его.

Демонстрация: https://stackblitz.com/edit/github-lazyload?file=src%2Fapp%2Fhome%2Fhome.page.ts

In home.page.ts

openModal() {
  this._modalCtrl.create({
    component: 'LocationComponent'   // Error: No component factory found for LocationComponent.
                                      // Did you add it to @NgModule.entryComponents?
    // component: LocationComponent
  }).then(modal => modal.present());
}

Я определил entryComponents: [LocationComponent] в components.module.ts

Как я могу заставить его загружаться лениво?

1 Ответ

0 голосов
/ 06 декабря 2018

Angular хранит фабрики компонентов в словаре Map , где ключ - тип компонента, а не строка

this._factories.set(factory.componentType, factory);

Итак, используя:

component: LocationComponent

должен работать на вас.

Пример Stackblitz

...