angular 控制日期不可选
时间: 2023-08-22 19:04:19 浏览: 180
AngularJS实现日期选择
在 Angular 中,你可以使用 `matDatepicker` 组件来选择日期,如果你需要禁用一些日期,可以使用 `matDatepickerFilter` 属性。
首先,你需要在组件中定义一个方法来判断哪些日期需要禁用。例如,下面的代码将禁用所有周六和周日的日期:
```typescript
import {Component} from '@angular/core';
import {MatDatepickerInputEvent} from '@angular/material/datepicker';
@Component({
selector: 'app-datepicker-filter-example',
template: `
<mat-form-field>
<input matInput [matDatepicker]="picker" (dateInput)="onDateInput($event)">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker [matDatepickerFilter]="myFilter"></mat-datepicker>
</mat-form-field>
`,
})
export class DatepickerFilterExample {
// Disable Saturday and Sunday
myFilter = (d: Date | null): boolean => {
const day = (d || new Date()).getDay();
return day !== 0 && day !== 6;
}
onDateInput(event: MatDatepickerInputEvent<Date>) {
console.log(event.value);
}
}
```
在上面的例子中,我们使用 `matDatepickerFilter` 属性来指定 `myFilter` 方法。该方法接收一个 `Date` 对象并返回一个布尔值,指示该日期是否应该被禁用。在这个例子中,我们检查日期是否是周六或周日,如果是,就禁用它。
最后,我们将 `myFilter` 方法传递给 `matDatepicker` 组件的 `matDatepickerFilter` 属性,这样就可以禁用指定的日期了。
阅读全文