如果应用程序未在60秒内使用,我正在使用ng-idle
将用户重定向回主屏幕。
我遇到的问题是,如果在重定向时打开了离子选择弹出窗口,它们仍会显示在屏幕上,直到它们被手动关闭。有没有办法检测任何开放的弹出窗口并关闭它们?
我已经看到你可以像这样引用离子选择:
@ViewChild('myselect') select: Select;
但我的选择字段是以表格动态设置的,因此无法知道将设置多少个选择字段。
我还尝试使用javascript手动删除<ion-alert></ion-alert>
元素,但由于某种原因,这会阻止用户在他们再次开始使用该应用时打开离子选择弹出窗口。
感谢您的帮助。
答案 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(),这是一种可能的方法。