Уволить Ionic 4 popover из своей составляющей - PullRequest
4 голосов
/ 05 марта 2019

У меня есть стандартная Ionic 4 страница (Home), которая создает всплывающее окно, которое использует компонент (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()); }

business-detail.component.ts

goToRequestTurn(id: string) {
   //Need to dismiss popver here (?)
   this.router.navigateByUrl(`/request-turn/${id}`); }

Спасибо за вашу помощь.

Ответы [ 2 ]

6 голосов
/ 05 марта 2019

добавьте private popoverController: PopoverController в конструктор компонента

, затем напишите функцию, подобную этой, и вызовите ее, если вы хотите отклонить модальный

 async DismissClick() {
await this.popoverController.dismiss();
  }
0 голосов
/ 07 июня 2019

добавить private popoverController: popoverController в конструктор всплывающих окон

затем напишите такую ​​функцию и вызывайте ее, когда вы хотите закрыть всплывающее меню. Эта функция также содержит вашу логику для навигации. Отказ от всплывающего окна, а затем навигация, кажется, дают лучший пользовательский опыт

 async DismissClick() {
    await this.popoverController.dismiss();
    this.router.navigate([`/request-turn/${id}`]);
...