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" 时将我带到正确的目的地。
我想在 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:
但是,下面的代码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" 时将我带到正确的目的地。