Angular 角度材质单击下个月或上个月不工作
代码段:Angular 角度材质单击下个月或上个月不工作,angular,angular-material,angular-material-datetimepicker,Angular,Angular Material,Angular Material Datetimepicker,代码段: <mat-calendar *ngIf="dataAvailable" #openCalendar [dateClass]="getAttendance()" (selectedChange)="onSelect($event)" (monthSelected)="monthSelected($event)"> </mat-calendar> Angular Material不提供在单击下一个月和上一个月时调用某些事件的选项。如果我们需要使用角材质日历,是
<mat-calendar *ngIf="dataAvailable" #openCalendar [dateClass]="getAttendance()" (selectedChange)="onSelect($event)" (monthSelected)="monthSelected($event)"> </mat-calendar>
Angular Material不提供在单击下一个月和上一个月时调用某些事件的选项。如果我们需要使用角材质日历,是否有解决方法?对于仍在搜索此问题解决方案的用户,您可以使用ngAfterViewInit中的查询选择器访问上一个和下一个箭头,这可能不是最好的方法,但对我来说很有用
ngAfterViewInit(): void {
const BACK_BUTTON = document.querySelector('.mat-calendar-previous-button');
const FORWARD_BUTTON = document.querySelector('.mat-calendar-next-button');
if (BACK_BUTTON) {
this.renderer.listen(BACK_BUTTON, 'click', () => {
console.log(this.dateAdapter.today());
if (this.calendarDate.getMonth() === 0) {
this.calendarDate.setFullYear(this.calendarDate.getFullYear() - 1);
this.calendarDate.setMonth(11);
} else {
this.calendarDate.setMonth(this.calendarDate.getMonth() - 1);
}
});
}
if (FORWARD_BUTTON) {
this.renderer.listen(FORWARD_BUTTON, 'click', () => {
if (this.calendarDate.getMonth() === 11) {
this.calendarDate.setFullYear(this.calendarDate.getFullYear() + 1);
this.calendarDate.setMonth(0);
} else {
this.calendarDate.setMonth(this.calendarDate.getMonth() + 1);
}
});
}
}
对于仍在搜索此问题解决方案的用户,您可以使用ngAfterViewInit中的查询选择器访问“上一个”和“下一个”箭头,这可能不是最好的方法,但对我来说很有用
ngAfterViewInit(): void {
const BACK_BUTTON = document.querySelector('.mat-calendar-previous-button');
const FORWARD_BUTTON = document.querySelector('.mat-calendar-next-button');
if (BACK_BUTTON) {
this.renderer.listen(BACK_BUTTON, 'click', () => {
console.log(this.dateAdapter.today());
if (this.calendarDate.getMonth() === 0) {
this.calendarDate.setFullYear(this.calendarDate.getFullYear() - 1);
this.calendarDate.setMonth(11);
} else {
this.calendarDate.setMonth(this.calendarDate.getMonth() - 1);
}
});
}
if (FORWARD_BUTTON) {
this.renderer.listen(FORWARD_BUTTON, 'click', () => {
if (this.calendarDate.getMonth() === 11) {
this.calendarDate.setFullYear(this.calendarDate.getFullYear() + 1);
this.calendarDate.setMonth(0);
} else {
this.calendarDate.setMonth(this.calendarDate.getMonth() + 1);
}
});
}
}
“点击下个月和上个月”,你是指右上角的箭头吗?你是指“mat datepicker”?datepicker提供一个(输入)和(更改)事件以及一个(dateInput)和(dateChange)事件。这可能会有帮助。是的,我的意思是点击箭头。我使用的是mat日历,而不是mat日期选择器。库中似乎只有两个输出事件。单击下一个和上一个箭头“单击下一个和上一个月”时不提供任何事件,您是指右上角的箭头吗?您是指“mat datepicker”?datepicker提供一个(输入)和(更改)事件以及一个(dateInput)和(dateChange)事件。这可能会有帮助。是的,我的意思是点击箭头。我使用的是mat日历,而不是mat日期选择器。库中似乎只有两个输出事件。单击下一个和上一个箭头时不提供任何事件