Angular 角度5禁用移动设备上的cdk焦点状态

Angular 角度5禁用移动设备上的cdk焦点状态,angular,mobile,angular5,angular-cdk,Angular,Mobile,Angular5,Angular Cdk,手机上有一个bug(我猜),当你点击侧导航菜单,然后选择要去的路线时,它会关闭侧导航,但使菜单按钮保持焦点状态。打开模态的按钮也会发生这种情况,或者实际上任何具有焦点状态的东西(侧导航、导航项目、按钮等…) 您可以在角度材质侧导航示例(模拟移动设备)中看到这种情况: 或者你可以看到下面的屏幕截图(我点击了toggle sidenav按钮后,它被聚焦) 我想知道如何在angular 5上禁用移动设备上的cdk焦点状态(或在特定条件下)。此错误是由于在浏览器中使用angular的自定义按钮元素造

手机上有一个bug(我猜),当你点击侧导航菜单,然后选择要去的路线时,它会关闭侧导航,但使菜单按钮保持焦点状态。打开模态的按钮也会发生这种情况,或者实际上任何具有焦点状态的东西(侧导航、导航项目、按钮等…)

您可以在角度材质侧导航示例(模拟移动设备)中看到这种情况:

或者你可以看到下面的屏幕截图(我点击了toggle sidenav按钮后,它被聚焦)


我想知道如何在angular 5上禁用移动设备上的cdk焦点状态(或在特定条件下)。此错误是由于在浏览器中使用angular的自定义按钮元素造成的。解决方案是使用Javascript检测用户点击并手动禁用焦点

您可以尝试以下方法:

scope.clickActive = false;
element.on('click', function() {
    scope.clickActive = true;
    $timeout(function(){
      scope.clickActive = false;
    }, 100);
  })
  .on('focus', function() {
    if(scope.clickActive === false) { element.addClass('md-focused'); }
  })
  .on('blur', function() { element.removeClass('md-focused'); });

我最终使用以下css来消除这种效果:

.mat-button,
.mat-icon-button {
  &.cdk-focused,
  &.cdk-program-focused {
    background-color: none !important;

    .mat-button-focus-overlay {
      display: none !important;
    }
  }
}

您是否尝试过
自动对焦:false
?无法绑定到“自动对焦”,因为它不是“mat sidenav”的已知属性。您尝试过这样做吗<代码>是的,我就是这样尝试的。