0
我试图创建一个模态组件,并希望对其进行设置,以便在用户点击转义时模式关闭。不过,我似乎无法获得组件工作的按键绑定。无法在非事件元素上执行按键事件
,我开始试图通过一个主机绑定:
@HostListener('keypress', ['$event']) public escapePressed(key) {
console.log(key);
}
,但我从来没有看到任何东西,除非登录我在我的组件的输入是。我将听众更改为window:keypress
,我开始看到记录的事件,也许我可以将其设置为只在模式打开时才会触发,但我认为我仍应该尝试弄清楚如何正确执行。另外,如果创建了多个模式,那么会有多个窗口绑定,都会执行相同的操作,效率不高。
我不知道如何解决这个问题。
我有一种感觉,它与重点做的,但我不知道如何正确地集中它。但是,如果焦点转移到输入,例如,它会停止工作,对吧?你的回答让我想知道,当窗口绑定+只有当模式打开时触发是最好的方式,但不知道如何避免多重绑定。 – RhoVisions
只要你的输入在div标签内你是安全的。 – crook
但用tabindex,用户是不是必须先点击div?我只是试了一下,我不得不自己关注这个div,以获得触发的钥匙。如果用户必须点击某个东西,他们只需点击我的关闭框即可。感谢您的信息,但我不认为它是我正在寻找的解决方案。 – RhoVisions