首页 文章

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

提问于
浏览
6

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

但是: I cannot seem to find a way to prevent a mat-menu from closing when I press tabulator to change focus .

以此StackBlitz为例:https://stackblitz.com/edit/angular-ij6jbx:它正确地阻止 mat-menu 关闭 when 输入字段接收焦点 via mouse click . 另一方面:如果我按"tabulator"更改焦点并且 username -input-field接收焦点,则菜单关闭 .

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

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

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

1 回答

  • 4

    我会 grab keydown 事件如下:

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

    Forked Stackblitz

    另外我会将 tabindex="-1" 添加到所有清除按钮

相关问题