Gantt 实例的特性
本文介绍使用 Gantt 实例的主要特性。
让我们考虑最常见的场景——构建一个包含多个页面/标签页/视图的应用程序。
以下方法同样适用于基于 Angular(或 React)的应用。从 v10 开始,它在 dhtmlxGantt 的所有版本中可用(免费 Community 版和 PRO 版);在较旧的版本(v9.x 及更早的 GPL 版)中不可用:
- 当你打开带有 Gantt 的页面/标签页/视图时,需要创建一个新的 Gantt 实例;
- 当你切换到不同的页面/标签页/视图时,需要 销毁 Gantt 实例。
替代方法(适用于所有版本)是自行手动重置一切。
注释
请查看 example 以了解如何实现该方法。
当你点击 Recreate Gantt 按钮时,Gantt 将初始化、加载任务并附加事件。如果你销毁 Gantt,事件将被解除绑定。
在使用此方法时,需要记住以下几点:
自定义事件
当你加载带有 Gantt 的页面时,需要在添加事件之前,将事件的 ID 手动保存到一个数组中:
const onTaskClick = gantt.attachEvent('onTaskClick', (id) => {
gantt.message(`onTaskClick: Task ID: ${id}`);
return true;
}, '');
eventIDs.push(onTaskClick);
当你切换到另一个页面时,需要使用你保存到数组中的 ID 手动分离事件:
eventIDs.forEach(event => gantt.detachEvent(event));
eventIDs = [];
有关更多细节,请参见 Detaching events 小节。
数据处理器
你需要手动销毁 dataProcessor :
dp.destructor();
请注意,你只需要销毁 dataProcessor,而不是 Gantt。否则,在重新加载页面之前将无法使用 Gantt。
任务、连线、资源数据、标记、自定义快捷键
你可以使用 clearAll() 方法安全地从 Gantt 实例中移除这些数据。
Gantt 配置
没有内建的方法可以保存它或将 Gantt 配置重置为默认值。大多数 Gantt 配置保存在 gantt.config 对象中。
CSS
如果你添加了自定义 CSS,若导致问题,需要手动移除 。
日历设置
你需要使用 gantt.deleteCalendar() 方法手动删除它们。
其他情况
除了上面描述的几点,你可能还需要实现其他选项,但我们尚未测试此方法的所有可能场景。
Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.