从其组件中关闭 Ionic 4 弹出窗口
Dismiss Ionic 4 popover from its component
我有一个标准的 Ionic 4 页面(主页),它创建了一个弹出窗口,该弹出窗口使用一个组件(BusinessDetails)和一个重定向到新页面(RequestTurn)的按钮。但是,当我单击该按钮时,弹出窗口不会消失,而是呈现在我的 RequestTurn 页面顶部。我想我需要从组件 (BusinessDetails) 中手动关闭它,但我不知道如何从那里访问弹出窗口的实例,因为它是在主页中创建的。有办法吗?
home.page.ts
presentModal(business:Business, event: Event) {
this.popoverController.create(({
component: BusinessDetailsComponent,
cssClass: "business-popover",
showBackdrop: true,
componentProps: {
business: business
}
}) as any).then(popover => popover.present()); }
业务-detail.component.ts
goToRequestTurn(id: string) {
//Need to dismiss popver here (?)
this.router.navigateByUrl(`/request-turn/${id}`); }
感谢您的帮助。
在组件构造函数中添加private popoverController: PopoverController
然后写一个这样的函数,当你想关闭模态时调用它
async DismissClick() {
await this.popoverController.dismiss();
}
我是这样解决这个问题的:
在父组件中,我已将回调作为 prop 传递给子组件:
const popover = await this.popoverController.create({
component: PopoverComponent,
event: ev,
componentProps: {
onClick: () => {
popover.dismiss();
},
},
});
await popover.present();
并且在 PopoverComponent 中我添加了 @Input() onClick;
当用户点击时调用:
...
@Input()
public onClick = () => {}
...
afterClick() {
this.onClick();
}
我有一个标准的 Ionic 4 页面(主页),它创建了一个弹出窗口,该弹出窗口使用一个组件(BusinessDetails)和一个重定向到新页面(RequestTurn)的按钮。但是,当我单击该按钮时,弹出窗口不会消失,而是呈现在我的 RequestTurn 页面顶部。我想我需要从组件 (BusinessDetails) 中手动关闭它,但我不知道如何从那里访问弹出窗口的实例,因为它是在主页中创建的。有办法吗?
home.page.ts
presentModal(business:Business, event: Event) {
this.popoverController.create(({
component: BusinessDetailsComponent,
cssClass: "business-popover",
showBackdrop: true,
componentProps: {
business: business
}
}) as any).then(popover => popover.present()); }
业务-detail.component.ts
goToRequestTurn(id: string) {
//Need to dismiss popver here (?)
this.router.navigateByUrl(`/request-turn/${id}`); }
感谢您的帮助。
在组件构造函数中添加private popoverController: PopoverController
然后写一个这样的函数,当你想关闭模态时调用它
async DismissClick() {
await this.popoverController.dismiss();
}
我是这样解决这个问题的: 在父组件中,我已将回调作为 prop 传递给子组件:
const popover = await this.popoverController.create({
component: PopoverComponent,
event: ev,
componentProps: {
onClick: () => {
popover.dismiss();
},
},
});
await popover.present();
并且在 PopoverComponent 中我添加了 @Input() onClick;
当用户点击时调用:
...
@Input()
public onClick = () => {}
...
afterClick() {
this.onClick();
}