全日历时间线资源区域宽度

问题描述 投票:0回答:1

我正在从一个已有 4 年历史的基于角度全日历的应用程序迁移。当时,我确实通过查询“.fc-resource-area”和“.fc-time-area”元素各自的宽度来导出时间轴视图中资源区域的相对宽度。

现在布局已经完全改变 - 在开始再次对布局进行逆向工程并在下一个版本中再次失败之前:是否有任何官方方法来查询当前的资源区域宽度?

angular fullcalendar
1个回答
0
投票

无论如何,有人也需要采用 hacky 方式 - 这就是我的应用程序中运行的解决方法:

    const el = this.calendarElement.nativeElement;
    const elementResourceArea = el?.querySelector(".fc-datagrid-body");
    const elementTimeArea = el?.querySelector(".fc-timeline-body");
    const newResourceAreaWidth = elementResourceArea?.parentElement?.clientWidth ?? 0;
    const newTimeAreaWidth = elementTimeArea?.parentElement?.clientWidth ?? 0;
    if (newResourceAreaWidth === 0 || newTimeAreaWidth === 0) {
      return;
    }
    if (
      this.elementResourceAreaWidth !== newResourceAreaWidth ||
      this.elementTimeAreaWidth !== newTimeAreaWidth
    ) {
      this.elementResourceAreaWidth = newResourceAreaWidth;
      this.elementTimeAreaWidth = newTimeAreaWidth;
      const ratio = (newResourceAreaWidth / (newResourceAreaWidth + newTimeAreaWidth)) * 100;
      this.settings.setValue("resourceAreaWidth", "" + ratio + "%");
      this.settings.store();
    }
© www.soinside.com 2019 - 2024. All rights reserved.