angular - 当用户单击 mat-calendar 中的月份导航时,如何检索月份和年份值?

标签 angular typescript angular-material calendar

我正在我的 Angular 项目中使用。当用户单击顶部的导航按钮更改月份时,我想捕获该事件并获取月份和年份值。

enter image description here

经过大量搜索,我设法获得以下代码来捕获点击事件。我无法获得月份和年份的值。如何获得?

HTML

<mat-calendar [minDate]="minDate" [maxDate]="maxDate" [dateClass]="dateClass()" [dateFilter]="futureEventFilter"
            #calendar (monthSelected)="monthSelected($event)" (selectedChange)="getDateChangedValue($event)" [(selected)]="selectedDate">
        </mat-calendar>

TS代码

ngAfterViewInit() {
        let buttons = document.querySelectorAll('mat-calendar .mat-calendar-previous-button,' +
            'mat-calendar .mat-calendar-next-button');
    
        if (buttons) {
            Array.from(buttons).forEach(button => {
                this.renderer.listen(button, "click", () => {
                    //this.monthSelected($event);
                    console.log(button)
                });
            })
        }
    }

public monthSelected(date) {
        alert(date);
    }

如何调用monthSelected并检索月份和年份值? 请在这里帮忙。

最佳答案

编辑:

你可以这样做:

<mat-calendar [selected]="selectedDate" (selectedChange)="logMonth($event)"></mat-calendar>

以及 ts 文件中的 selectedChange 的处理程序:

  selectedDate: any
  logMonth($event: any) {
    this.selectedDate = $event
    console.log($event)
  }

您将在控制台中打印日期,并使用所选日期更新日历

原文:

使用mat-datepicker代替:link

<mat-form-field class="example-full-width" appearance="fill">
    <mat-label>Choose a date</mat-label>
    <input matInput [matDatepicker]="picker">
    <mat-datepicker (monthSelected)="logMonth($event)" #picker></mat-datepicker>
</mat-form-field>
<button mat-raised-button (click)="picker.open()">Open</button>

您不需要整个 ngAfterViewInit() {...} 代码块。
您只需在日期选择器中使用 (monthSelected)="logMonth($event)" ,并在 ts 文件中使用 logMonth($event) 来处理事件:

  logMonth($event: any) {
    console.log($event);
  }

关于angular - 当用户单击 mat-calendar 中的月份导航时,如何检索月份和年份值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64375725/

相关文章:

Angular:在 Angular 中延迟加载背景图像

angular - 所需输入 CSS 选择器等效于响应式(Reactive)表单

javascript - 在 Sequelize 中导入 instanceMethods 函数时出错

javascript - 创建秒表时出错

node.js - 使用 pm2 的 Typescript Node 应用程序部署过程

javascript - 如何在 Angular 2 中添加多个 OR 条件

css - 控制 mat-chip 的高度

javascript - 路由器在 NavigationStart 事件中导航

javascript - 获取 ' ng2-ckeditor'中的光标位置

css - Angular 7 - 根据条件更改 Mat-select-value 的颜色