如何使用 Angular 在完整日历中切换日、周、月和年视图?

How can I switch the day, week month, and year view in the full calendar using Angular?

提问人:Nikunj Chaklasiya 提问时间:10/18/2023 最后编辑:Nikunj Chaklasiya 更新时间:10/19/2023 访问量:89

问:

我正在使用最新版本的 fullcalendar v6

这是我尝试过的 StackBlitz 代码。

我正在尝试动态切换完整的日历视图,但运气不好

这是我的代码。 当我在这里分配所有视图时,第一次就可以正常工作。

@ViewChild('calendar') calendarComponent!: FullCalendarComponent;
  calendarOptions: CalendarOptions = {
    plugins: [dayGridPlugin],
    initialview: 'dayGridDay'
  };

但是我们如何像下面的代码一样动态地更改视图。 我尝试了多种方法,但没有找到任何解决方案。我们怎样才能做到这一点?

  calendarViewOption(event: any){
    if(event === 1){
      this.calendarComponent.getApi().changeView('dayGridDay');
      this.calendarOptions.plugins = [dayGridPlugin];
    } 
    else if(event === 2) {
      this.calendarComponent.getApi().changeView('timeGridWeek');
      this.calendarOptions.plugins = [timeGridPlugin];
    }
    else if(event === 3) {
        this.calendarComponent.getApi().changeView('dayGridMonth');
        this.calendarOptions.plugins = [dayGridPlugin];
    }
    else if(event === 4) {
      this.calendarComponent.getApi().changeView('multiMonthYear');
      this.calendarOptions.plugins = [multiMonthPlugin,interactionPlugin];
    }

    if (this.calendarComponent) {
      this.calendarComponent.getApi()?.render();
    }
    
  }

<full-calendar #calendar [options]="calendarOptions" id="mxCalendar"></full-calendar>
<button (click)="calendarViewOption(1)">View Day</button>
<button (click)="calendarViewOption(2)">View Week</button>
<button (click)="calendarViewOption(3)">View Month</button>
<button (click)="calendarViewOption(4)">View Multi-Month Year</button>

编辑:

使用完整日历视图未更改 第一次说请确保您已加载所有必要的插件时,我已经添加了所有插件。我还放了设置超时功能。

第二次它没有给出错误,也没有更新视图 这是图片

enter image description here

Angular TypeScript 视图 FullCalendar FullCalendar-6

评论

0赞 radio_head 10/18/2023
更改后日历组件的属性值是多少。编号: fullcalendar.io/docs/Calendar-viewview
0赞 Nikunj Chaklasiya 10/18/2023
感谢您的回复,我在更改视图时编辑了我的问题视图没有更新。
0赞 radio_head 10/18/2023
你能添加一个stackblitz链接来重现这个吗
0赞 Nikunj Chaklasiya 10/19/2023
当然,这是 stackblitz.com/edit/ 的例子......
0赞 radio_head 10/19/2023
经过修改以使其工作,stackblitz.com/edit/...您只需要导入插件并调用changeView

答: 暂无答案