我正在从一个已有 4 年历史的基于角度全日历的应用程序迁移。当时,我确实通过查询“.fc-resource-area”和“.fc-time-area”元素各自的宽度来导出时间轴视图中资源区域的相对宽度。
现在布局已经完全改变 - 在开始再次对布局进行逆向工程并在下一个版本中再次失败之前:是否有任何官方方法来查询当前的资源区域宽度?
无论如何,有人也需要采用 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();
}