angular - Angular Material 10 日期范围选择器与 matDatepickerFilter
问题描述
Angular Material 10 MatDateRangeInput 可以与 matDatepickerFilter 一起使用吗?
如果我试试这个:
<mat-form-field appearance="outline">
<mat-label>Label</mat-label>
<mat-date-range-input [formGroup]="parent" [rangePicker]="picker">
<input matStartDate formControlName="start"
[matDatepickerFilter]="myFilter"
readonly
placeholder="Start">
<input matEndDate formControlName="end"
[matDatepickerFilter]="myFilter"
readonly
placeholder="End">
</mat-date-range-input>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-date-range-picker touchUi #picker [disabled]="false"></mat-date-range-picker>
</mat-form-field>
错误是
NG8002: Can't bind to 'matDatepickerFilter' since it isn't a known property of 'input'.
解决方案
要在 mat-date-range-input 中添加过滤器,您必须像底部示例一样使用dateFilter输入:
<mat-form-field class="custom-filter-field" appearance="outline">
<mat-label>Date</mat-label>
<mat-date-range-input [formGroup]="range" [rangePicker]="picker" [dateFilter]="myFilter">
<input matStartDate placeholder="Start date" formControlName="start">
<input matEndDate placeholder="End date" formControlName="end" >
</mat-date-range-input>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-date-range-picker #picker></mat-date-range-picker>
</mat-form-field>
在您的 ts 文件中,您必须实现过滤器功能:
myFilter = (d: Date | null): boolean => {
const day = (d || new Date()).getTime();
return day <= this.todayDate.getTime();
};
此方法过滤未来日期并且不显示它们
推荐阅读
- heroku - Heroku - 使一个已经创建的数据库成为另一个数据库的追随者
- reference - 如何使用 openFromComponent 将snackBarRef 注入组件
- javascript - CSS 和 JavaScript:如何创建受渲染高度或 innerText 长度限制的 DOM 子树?
- angular - ngmodule 模块解析错误,带有意外字符'@'
- python - Numpy:将二维高斯和pdf生成为数组
- python - Python - 匹配excel中2个表中最接近的值
- java - Android - 从 DatePickerDialog 更改线条颜色
- angular - 我的对象数组在本地存储中存储了两次
- java - 无法更改标签和按钮值
- php - PHP 新手,需要忽略函数中的部分变量