如何关闭页面重定向上的Ionic选择?

时间:2018-03-22 11:03:22

标签: angular cordova ionic-framework ionic3

如果应用程序未在60秒内使用,我正在使用ng-idle将用户重定向回主屏幕。

我遇到的问题是,如果在重定向时打开了离子选择弹出窗口,它们仍会显示在屏幕上,直到它们被手动关闭。有没有办法检测任何开放的弹出窗口并关闭它们?

我已经看到你可以像这样引用离子选择:

@ViewChild('myselect') select: Select;

但我的选择字段是以表格动态设置的,因此无法知道将设置多少个选择字段。

我还尝试使用javascript手动删除<ion-alert></ion-alert>元素,但由于某种原因,这会阻止用户在他们再次开始使用该应用时打开离子选择弹出窗口。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

感谢Alex的评论,这就是我解决问题的方法:

<强>进口

import { QueryList, ViewChildren } from '@angular/core';
import { Select } from 'ionic-angular';

ViewChildren设置

@ViewChildren(Select) viewChildren: QueryList<Select>;

当页面离开时,关闭所有打开的离子选择字段。

ionViewWillLeave() {
    this.viewChildren.map((view:any) => {
      view.close();
    });
  }

答案 1 :(得分:0)

如果有人在 Ionic v5 中寻找解决方案,这里是解决方案。

let backDrop = document.querySelector('ion-backdrop');

if (backDrop) {
  backDrop.click();
}

由于 IonSelect 在 v4 和 v5 中没有 close(),这是一种可能的方法。