【发布时间】:2018-10-28 22:08:31
【问题描述】:
我正在尝试使用 Ionic Framework v3 显示弹出框,我有一个包含列表组件的离子页面,在此列表中我有一个按钮将显示弹出框。 所以我已经在父页面中声明了我的弹出框组件,并且我在列表中创建了一个事件发射器,它将向父页面发送切换信息。
但我得到了给定的错误:
No component factory found for PopoverComponent. Did you add it to @NgModule.entryComponents?
页面模块代码:
@NgModule({
declarations: [
PopoverComponent
],
imports: [
IonicPageModule.forChild(MyCustomPage),
],
entryComponents: [
PopoverComponent
]
})
export class MyCustomModule {}
页面代码:
@Component({
selector: 'my-custom-page',
templateUrl: 'my-custom-page.html'
})
export class MyCustomPage {
public constructor(public popoverCtrl: PopoverController) { }
public toggleFilters() {
const popover = this.popoverCtrl.create(PopoverComponent);
popover.present();
}
}
页面模板:
<my-custom-list (onFilterToggle)="toggleFilters()"></my-custom-list>
组件列表:
@Component({
selector: 'my-custom-list',
templateUrl: 'my-custom-list.component.html'
})
export class MyCustomListComponent {
@Output() onFilterToggle: EventEmitter<void> = new EventEmitter<void>();
public showFilters() {
this.onFilterToggle.emit();
}
}
组件模板:
<button (click)="showFilters()">Test</button>
弹出代码:
@Component({
selector: 'my-popover',
template: '<p>Test</p>'
})
export class PopoverComponent {
constructor(public viewCtrl: ViewController) {}
close() {
this.viewCtrl.dismiss();
}
}
我的所有页面中都加载了一个共享模块,我尝试将其添加到此处,但仍然出现相同的错误,我尝试将其添加到应用程序中列表组件中的 entryComponents模块,仍然是同样的错误。
如果有人有想法。
【问题讨论】:
标签: angular typescript ionic-framework ionic3 popover