我有一个总是打开的 mat-calendar 控件。在初始加载时,我突出显示了一组日期,这些日期能够执行以下操作:突出显示 mat-calendar 中的某些日期。现在我必须通过单击按钮突出显示今天(或选定的日期)。突出显示仅在我更改为不同月份时才有效,然后返回当前月份的视图。有没有办法动态刷新 mat-calendar?请指教。
问问题
5380 次
3 回答
11
您可以简单地使用MatCalendar.updateTodaysDate()
重新渲染它。
@ViewChild(MatCalendar) calendar: MatCalendar<Date>;
someEvent(){
this.calendar.updateTodaysDate();
}
于 2019-07-15T14:28:34.990 回答
3
我正在使用材料 7.2 并为我移动它更新属性的工作重点activeDate
:
<mat-calendar
#myCalendar
[startAt]="startDate"
[selected]="selectedDate">
</mat-calendar>
<div>
<button mat-button (click)="addThreeDays()">
Add 3 days
</button>
</div>
然后在组件逻辑中
@ViewChild('myCalendar') myCalendar;
startDate = '2019-08-26';
selectedDate = '2019-08-26';
addThreeDays() {
this.myCalendar.activeDate = '2019-08-29';
}
于 2019-08-26T16:29:50.840 回答
1
我还没有找到本地方法。
这是我的解决方法:
将 mat-calendar 组件放在 div 中,条件是突出显示日期的数组不是未定义的
<mat-card *ngIf="datesToHighlight">
<mat-calendar [dateClass]="dateClass()" [selected]="selectedDate" (selectedChange)="onSelect($event)"></mat-calendar>
</mat-card>
当你想刷新 mat-calendar 时,将数组设置为 null,然后用更新的数据填充它
this.datesToHighlight = null;
this.datesToHighlight = getMyNewArray();
这样组件将使用新数组再次加载
于 2019-06-05T17:27:21.090 回答