css - 如何在 Angular Material 中更改 mat-datepicker 上的 touchUi 属性

标签 css angular angular-material

我将 Angular 5 与 Material Design 模块一起使用。

在我的 html 中,我有一个日期选择器:

<mat-datepicker touchUi=true #picker></mat-datepicker>

在我的 CSS 中,我设置了一些媒体查询:
/* Phones */
@media (max-width: 767px) {
}

/* Tablets */
@media (min-width: 768px) and (max-width: 991px) {
}

/* Desktops */
@media (min-width: 1200px) {
}

如何删除 touchUi=true台式机的属性?

最佳答案

您可以使用 Angular CDK 的 BreakpointObserver这样做,以及使用 setter/getter 。

  • 进口 LayoutModule来自 @angular/cdk/layout在您应用的模块中:

    import { LayoutModule } from '@angular/cdk/layout';
    // ...
    
    @NgModule({
        imports: [
            LayoutModule
        ]
    
  • 使用 @angular/cdk/layout 中的断点观察器如下(您可能需要 isMatchedBreakpointObserver 方法,它允许 stringstring[] 作为媒体的参数):

    import { BreakpointObserver } from '@angular/cdk/layout';
    export class AppComponent {
        constructor(private breakpointObserver: BreakpointObserver){}
        // Check if device is phone or tablet
        get isMobile() {
            return this.breakpointObserver.isMatched('(max-width: 767px)');
        }
    }
    
  • 在您的日期选择器中按如下方式使用它:

    <mat-datepicker [touchUi]="isMobile" #picker></mat-datepicker>
    
  • Official documentation
  • API Docs
  • Stackblitz Demo
  • 关于css - 如何在 Angular Material 中更改 mat-datepicker 上的 touchUi 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47477601/

    相关文章:

    CSS 文本与 Mac 浏览器对齐

    javascript - Material 设计 (AngularJS) <md-select> 不工作

    angularjs - 使用单项选择时隐藏 md-data-table 中的复选框

    html - 如何在 PhoneGap 中添加自定义字体

    css - 如何使只有一行列表比屏幕宽?

    angular - 加载网格后无法更改 overlayNoRowsTemplate

    java - Selenium webdriver - 在 Angular/Material 设计网站上拖放

    Angular Material 多选在隐藏时获取选定值

    html - 集合中 block 中的单个链接不会干扰悬停时的其他链接

    javascript - Angular App 订阅前 Observable 过滤结果