angular - Material 2 : Show/Hide md-sidenav depending on media

标签 angular angular2-material

我想在大屏幕上打开 md-sidenav 并在移动设备上关闭它。在我的应用程序中执行此操作的正确方法是什么?

是否有可能在 angular2 组件中查询媒体?

最佳答案

在组件类内部,我定义了对 sidenav 的引用并监听窗口调整大小事件。根据 window.innerWith,您可以构建自己的逻辑。

  @ViewChild('sidenav') sidenav: MdSidenav

  @HostListener('window:resize', ['$event'])
  onResize(event) {
    this.configureSideNav()
  }

  configureSideNav() {
    this.smallScreen = window.innerWidth < 501 ? true : false
    if (!this.smallScreen) {
      this.sidenav.mode = "side"
      this.sidenav.opened = true
    } else {
      this.sidenav.mode = 'over'
      this.sidenav.opened = false
    }
  }

关于angular - Material 2 : Show/Hide md-sidenav depending on media,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40321032/

相关文章:

angular - 如何在管理自己的状态片的多个功能模块之间进行交互

angular - 是否可以使用 Angular 拦截器拦截像 .html 这样的静态文件?我想改变 lang 属性

angular - 在angularjs 2中与addListener的两种方式绑定(bind)

javascript - Angular2进度圈包

Angular 2 Material - overlay 和 portal 是如何工作的?

node.js - 即使将编译器选项用作angular 7中的目标es6和es2017,我如何解决编译时错误?

javascript - primeng确认服务多次通话

node.js - Angular 2 - 无法读取未定义的属性 'AssetUrl'

Angular 2 Material md 输入验证

Angular Material - 更改选定的 mat-list-option 的颜色