在我的董事会(用Angular 4编写)中,对话框如下打开:
导入已激活的路由,路由器
import { ActivatedRoute, Router } from '@angular/router';
在构造函数中添加路由器和ActivatedRoute引用
constructor (
...
private _router: Router,
private _activatedRoute: ActivatedRoute,
...)
并按以下方式使用
this._router.navigate(['./', { outlets: { somemodal: 'somemodal', dialogs: null }, relativeTo: this._activatedRoute }]);
要求是,当您按下转义键 Esc 时,它应显示删除模式(已实施且正在运行的其他模式)。
但是质量检查人员提出了一个问题 ,例如当出现其他弹出窗口(如扫描的检查图像/重新扫描弹出窗口/客户ID弹出窗口/错误消息弹出窗口)时, kbd> Esc 这些弹出窗口应先关闭。
如果没有其他弹出窗口,则仅打开“删除”模式,目前不存在。在命中 Esc 时,它仍会打开删除弹出窗口。
问题:如何检测是否存在其他弹出窗口。
注意:在开发的最初阶段,在某些共享服务中,我们可能已经创建了isPopupOpened: boolean = true
之类的标志,并且在关闭同一弹出窗口时应将其转到{{1} }。但这尚未实现,并且已实现了几种模式,这些模式在我的董事会的不同阶段均已打开。用户可能会在任何时间点按下 Esc 。所以我想如何解决相同的问题。
答案 0 :(得分:0)
我找到了解决方法。
this.ctx.scale(0.1, 0.1);
const imgData = this.ctx.getImageData(0, 0, 28, 28);
console.log(imgData);
只需检查URL中是否存在任何对话框或子对话框。它对我有用。
答案 1 :(得分:-1)
您可能需要维护共享服务中每个弹出窗口的状态。根据状态值,您需要处理弹出显示/关闭,然后用户按ESC按钮。要处理键盘事件,可以使用指令,并且可以在Constructor中注入共享服务以更新状态。