繁体   English   中英

Angular Material Calendar 设置始终关注今天的日期

[英]Angular Material Calendar set always focus on today's date day

每当我单击 Angular Material Calendar 上的任何日期时,今天的日期图块都会突出显示。 即使是在其他月份,这一天也会突出显示。

这是错误还是功能? 我说功能,因为即使在文档示例中,这也是可重现的。

这是一些代码供参考和演示

<mat-card class="demo-inline-calendar-card">
  <mat-calendar [(selected)]="selected"></mat-calendar>
</mat-card>

import {Component} from '@angular/core';

/** @title Datepicker inline calendar example */
@Component({
  selector: 'datepicker-inline-calendar-example',
  templateUrl: 'datepicker-inline-calendar-example.html',
  styleUrls: ['datepicker-inline-calendar-example.css'],
})
export class DatepickerInlineCalendarExample {
  selected: Date | null;
}

单击日历时,似乎这一天得到了关注。 此外,这似乎只在 Safari 中是正确的。

如何快捷方式的错误?

在此处输入图像描述

在此处输入图像描述

根据 Angular Material 文档,没有属性可以将当前日期选择设置为隐藏。 因此,我认为这是 Angular 开发团队提供的一项功能。

请在此处找到角度官方文档。

但是,如果你想对用户隐藏当前日期的选择,可以通过操作 Angular 的style.scss来解决。

请在此处找到有效的 stackblitz。

通过将以下样式添加到您的style.scss您将能够覆盖当前选择:

    .mat-calendar-body-today
      :not(.mat-calendar-body-selected)
      :not(.mat-calendar-body-comparison-identical) {
      background-color: rgb(255 255 255) !important;
      border: none !important;
    }

在组件 HTML 中:

<mat-card class="demo-inline-calendar-card">
  <mat-calendar [(selected)]="selected"></mat-calendar>
</mat-card>
<p>Selected date: {{selected}}</p>

在组件 TS 中:

import {Component} from '@angular/core';

/** @title Datepicker inline calendar example */
@Component({
  selector: 'datepicker-inline-calendar-example',
  templateUrl: 'datepicker-inline-calendar-example.html',
  styleUrls: ['datepicker-inline-calendar-example.css'],
})
export class DatepickerInlineCalendarExample {
  selected: Date | null;
}

找到了解决 Safari 中错误的方法,该错误使今天的日期成为焦点,以月份为准。

.mat-calendar-body-active>.mat-calendar-body-cell-content.mat-focus-indicator{
    background:transparent !important
}
 

这消除了当天不必要的关注

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM