微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何防止Angular/material mat-menu关闭键导航(tab)?

我已经阅读了 How to prevent angular material mat-menu from closing?,它解释了如何防止Angular材质mat-menu关闭点击.

但是:当我按Tabater更改焦点时,我似乎找不到阻止mat菜单关闭方法.

以StackBlitz为例:https://stackblitz.com/edit/angular-ij6jbx
当输入字段通过鼠标点击接收焦点时,它可以正确防止mat菜单关闭.另一方面:如果按“制表符”更改焦点并且用户名输入字段获得焦点,则菜单关闭.

我想知道如何防止这种行为 – 如果可能的话.我尝试附上$event.stopPropagation();到(输入),但它似乎没有做任何事情.

显然,Angular开发人员已根据https://github.com/angular/material2/issues/2612给出了一些想法.遗憾的是,在问题/功能请求结束时似乎没有适当的解决方案,也没有关于状态的提示.

P.s.:我知道,目前的代码不漂亮也不聪明.一旦它同时适用于点击和按键,我就会将其重构为自己的指令.

解决方法

我会抓住keydown事件如下:

<mat-menu ...>
  <form (keydown.tab)="$event.stopPropagation()">

Forked Stackblitz

此外,我会将tabindex =“ – 1”添加到所有清除按钮

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐