Ionic 3 open modal выдает ошибку not declared in entry component, но она уже существует

#angular #ionic-framework #ionic3

#angular #ionic-framework #ionic3

Вопрос:

У меня есть следующая модальность в ionic 3:

импорт { NgModule } из ‘@angular/core’; импорт {IonicPageModule } из ‘ionic-angular’; импорт { LoginModalPage } из ‘./login-modal’;

 @NgModule({
  declarations: [
    LoginModalPage,
  ],
  imports: [
    IonicPageModule.forChild(LoginModalPage),

  ],
  entryComponents: [LoginModalPage]
})
export class LoginModalPageModule {}
  

Я хочу использовать в app.component.ts /html:

 import { LoginModalPage } from '../modals/login-modal/login-modal';
import { LoginModalPageModule } from '../modals/login-modal/login-modal.module';
export function init_app(appLoadService: InitializerService) {
  return () => {
      return appLoadService.initializeApp();
  }
}
@NgModule({
  declarations: [
    MyApp,
    HomePage,
  ],
  imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp, {
      preloadModules: true
    }),
    IonicPageModule.forChild(MyApp),
    HttpClientModule,
    LoginModalPageModule
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler},
    GatewayService,
    UserService,
    GlobalVarService,
    AuthGuardService,
    HttpClient,
    InitializerService,
    {
      provide: APP_INITIALIZER,
      useFactory: init_app,
      deps: [InitializerService],
      multi: true
    },

  ]
})
export class AppModule {}
  

Но я получил следующую ошибку:

core.js: ОШИБКА 1449 Ошибка: Не обнаружена (в обещании): Ошибка: фабрика компонентов не найдена для [object Object] . Вы добавили ее в @NgModule.Входные компоненты? Ошибка: фабрика компонентов не найдена для [object Object] . Вы добавили ее в @NgModule.Входные компоненты?

Я попытался добавить его в компонент ввода app.module.ts, но получил следующую ошибку:

LoginModalМодуль объявлен в 2 компонентах

Комментарии:

1. Я не уверен, но можете ли вы попробовать добавить экспорт в свой LoginModalPageModule exports: [ LoginModalPage]

Ответ №1:

Чтобы использовать ее в AppComponent , вам нужно добавить ее в свой declarations и entryComponents в свой AppComponent.ts файл

Добавьте это в свой AppComponent.ts ,

 declarations: [
  MyApp,
  HomePage,
  LoginModalPage
]

entryComponents: [
  LoginModalPage
]
  

добавьте это в свой LoginPageModule

 exports: [ LoginPageModal ]
  

в соответствии с определением entryComponents

Задает список компонентов, которые должны быть скомпилированы при определении этого модуля. Для каждого компонента, перечисленного здесь, Angular создаст ComponentFactory и сохранит его в ComponentFactoryResolver .