javascript - 从 Angular Material 中禁用 'outside click' 上的 'FAB Speed Dialog'

标签 javascript angular-material

根据这支笔:http://codepen.io/kuhnroyal/pen/zrEpXK当您单击元素外部(外部单击)时,它会关闭 FAB Dial。

  <md-fab-speed-dial md-trigger="click" md-direction="down" class="md-scale md-fab-top-right">
    <md-fab-trigger>
      <md-button aria-label="menu" class="md-fab md-warn">
        <i class="fa fa-plus"></i>
      </md-button>
    </md-fab-trigger>
    <md-fab-actions>
      <md-button aria-label="Create Data App" class="md-fab md-raised md-mini" ng-click="action($event)">
        <md-tooltip>Create Data App</md-tooltip>
      </md-button>
    </md-fab-actions>
  </md-fab-speed-dial>

这支笔被开发为当您单击其子项时仍然显示,我想要相同的行为,但当您单击外部时。

PS:我唯一的解决方法是在 angular-material.js 中注释行:10072,其中包括当您单击外部时关闭 FAB :

function checkForOutsideClick(event) {
  if (event.target) {
    var closestTrigger = $mdUtil.getClosest(event.target, 'md-fab-trigger');
    var closestActions = $mdUtil.getClosest(event.target, 'md-fab-actions');

    if (!closestTrigger && !closestActions) {
      // vm.close();
    }
  }
}

最佳答案

FAB 快速拨号当前不提供自定义此交互的方法,因此您肯定需要稍微修改代码以使其按您想要的方式工作。您的解决方案似乎有效。

团队已讨论添加 md-is-locked-open 属性 ( https://github.com/angular/material/issues/4973 ),以便用户可以更好地控制此行为,但尚未实现,目前还不是一个优先。

关于javascript - 从 Angular Material 中禁用 'outside click' 上的 'FAB Speed Dialog',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35044671/

相关文章:

php使用javascript处理多个复选框选择

javascript - Angularjs将模态 Controller 内部的表单传递给模态外部的ng-controller

Javascript教程,请解释一下

Angular Testing : using fakeAsync with async/await

css - Angular Material 2 - 工具提示未正确显示

javascript - Angular Material 的 md-nav-bar 无法与 ui-router 一起正常工作

javascript - 如何获取图片链接以在 iframe 中打开其他文件

javascript - 当密码不匹配时如何在多重登录中重定向到索引页面

Angular 2 + Material : Unable to use map-get with 2nd parameter "text", "card"等

javascript - 如何在 Angular 单元测试中使 Material 组件与 Karma 一起工作