【发布时间】:2018-05-06 15:15:40
【问题描述】:
我正在尝试在我的主页上创建一个弹出框。所以我创建了以下功能..
public presentPopover(myEvent) {
let popover = this.popoverCtrl.create(TestComponent);
popover.present({
ev: myEvent
});
}
在我的 homepage.module.ts 中,我添加了 testComponent 作为入口组件。
import { TestModule } from './../../components/test/test.module';
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { HomePage } from './home';
import { TestComponent } from './../../components/test/test';
@NgModule({
declarations: [
HomePage,
],
imports: [
TestModule,
IonicPageModule.forChild(HomePage),
],
entryComponents: [
TestComponent,
]
})
但是当我点击那个弹出按钮时我仍然收到这个错误。
ERROR Error: Uncaught (in promise): Error: No component factory found for TestComponent. Did you add it to @NgModule.entryComponents?
Error: No component factory found for TestComponent. Did you add it to @NgModule.entryComponents?
at noComponentFactoryError (core.js:3786)
at CodegenComponentFactoryResolver.resolveComponentFactory (core.js:3850)
at PopoverCmp._load (popover-component.js:41)
at PopoverCmp.ionViewPreLoad (popover-component.js:33)
我很困惑,为什么要将此添加到条目组件中?
【问题讨论】:
-
要解决您的问题,您还需要将 TestComponent 添加到声明中。关于为什么要加入entryComponent,通过这个urlangular.io/guide/ngmodule-faq#q-entry-component-defined
-
@SrinivasValekar 如果我将此添加到声明中,我会收到一条错误消息,提示您已在测试模块和主模块中的两个地方定义了测试组件
-
然后在您的TestModule 中添加entryComponent 和declaration。从 homepage.module.ts 中删除 entryComponent
标签: angular ionic3 uipopovercontroller ng-modules