Ionic Modal:未找到组件工厂

Ionic Modal: No component factory found

我想在 Ionic 中打开一个模式:

export class TexteditorComponent {
   function showFormulaEditor() {
     this.modalCtrl.create({
       component: FormulaCreatorComponent
     }).then(m => m.present());
   }
}

但是,当执行这段代码时,出现以下错误:

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

TexteditorComponent 和 FormulaCreatorComponent 注册在 texteditor.module.ts:

@NgModule({
  declarations: [TexteditorComponent, FormulaCreatorComponent],
  entryComponents: [TexteditorComponent, FormulaCreatorComponent],
  imports: [
    CommonModule
  ],
  exports: [TexteditorComponent, FormulaCreatorComponent]
})
export class TexteditorModule { }

texteditor.module.ts导入exercise.module.ts:

@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    IonicModule,
    TexteditorModule,
    RouterModule.forChild(routes)
  ],
  declarations: [ExercisePage, PatternedInputComponent]
})
export class ExercisePageModule {
  constructor() {
    console.log("ExercisePageModule init");
  }
}

ExercisePage 使用其选择器加载 TexteditorComponent:

<app-texteditor [(ngModel)]="exercise.Exercise"></app-texteditor>

一切正常,TexteditorComponent 已正确呈现。

只有模式打不开。 我在 showFormulaEditor() 中记录了我的 modalCtrl: 肯定有 FormulaCreatorComponent 的工厂。

但是,下面的代码returns未定义:

modalCtrl.resolver._factories.get(FormulaCreatorComponent)

尽管如此,我可以将 FormulaCreatorComponent 添加到带有选择器的 TexteditorComponent:

<app-formulacreator></app-formulacreator>

可以正常工作。

我终于解决了... 在 texteditor.component.ts 中,我使用以下行导入了 FormulaCreatorComponent:

import { FormulaCreatorComponent } from './formulacreator/formulacreator.component.js';

显然,.js 是不正确的。我的 IDE(Visual Studio 代码)无论如何都能识别它,并在我单击 "Open Definition" 时将我带到正确的目的地。