angular-material - 角度 Material - 侧面导航

标签 angular-material

我正在使用 Angular Material 的 sidenav。我已经动态打开了侧导航。该面板带有背景。用户可以单击背景来关闭侧导航。我需要的是在单击背景时禁用侧导航关闭。你能帮我解决这个问题吗?

最佳答案

给你 - CodePen

技巧是访问背景元素并禁用其上的指针事件。

标记

<div ng-controller="AppCtrl" layout="column" style="height:500px;" ng-cloak="" class="sidenavdemoBasicUsage" ng-app="MyApp">
  <section id="section" layout="row" flex="">
    <md-content flex="" layout-padding="">
      <div layout="column" layout-fill="" layout-align="top center">
        <div>
          <md-button ng-click="toggleRight()" ng-hide="isOpenRight($event)" class="md-primary">
            Toggle right
          </md-button>
        </div>
      </div>
      <div flex=""></div>
    </md-content>
    <md-sidenav class="md-sidenav-right md-whiteframe-4dp" md-component-id="right">
      <md-content ng-controller="RightCtrl" layout-padding="">
        <md-button ng-click="close()" class="md-primary">
          Close Sidenav Right
        </md-button>
      </md-content>
    </md-sidenav>
  </section>
</div>

JS

angular
  .module('MyApp',['ngMaterial', 'ngMessages', 'material.svgAssetsCache'])
  .controller('AppCtrl', function ($scope, $timeout, $mdSidenav, $log, $element) {
    var section,
        backdrop;

    $scope.toggleRight = function() {
      $mdSidenav('right')
        .toggle()
        .then(function () {
        $log.debug("toggle right is done");
        // Disable pointer events on backdrop
        section = angular.element($element[0].querySelector('#section'));
        backdrop = section[0].children[0];
        backdrop.style.pointerEvents = 'none';
      });
    }
  })
  .controller('RightCtrl', function ($scope, $timeout, $mdSidenav, $log) {
    $scope.close = function () {
      $mdSidenav('right').close()
        .then(function () {
          $log.debug("close RIGHT is done");
        });
    };
  });

关于angular-material - 角度 Material - 侧面导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38868923/

相关文章:

Angularfire auth 防护和 Angular Material 不能一起工作

angular-material - 在角度 Material 设计中的工具栏下方设置sidenav?

javascript - 在 ng-view 中加载新路由时,选项卡 (tabindex) 定位到错误的元素

javascript - ngMaterial 和 ngRoute 一起打破应用程序

angular - 如何使用 Angular Material 中的力矩更改日期选择器表单控件值格式

javascript - 通过代码更改 Angular 垫选择占位符颜色

angular - 为什么 Angular Datepicker 发送错误的日期?

angular - Mat-select 更改值不会通过双向绑定(bind)传播

angular - 每行的 mat-table 中的 formGroup 数组

angular - 在 FormArray 中访问 FormGroup 中的 FormControl