Dieser Artikel behandelt die wichtigsten Aspekte bei der Arbeit mit einer Gantt-Instanz.
Betrachten wir ein häufiges Szenario: Der Aufbau einer Anwendung mit mehreren Seiten, Tabs oder Ansichten.
Die folgende Methode gilt für Angular-basierte (oder React-basierte) Anwendungen und ist nur in den Commercial-, Enterprise- oder Ultimate-Editionen von dhtmlxGantt verfügbar (sie wird in den GPL- oder Individual-Editionen nicht unterstützt):
Alternativ (diese Methode funktioniert mit allen Versionen) können Sie alles manuell zurücksetzen.
Sehen Sie sich das Beispiel an, das zeigt, wie dieser Ansatz umgesetzt werden kann.
Durch Klicken auf die Schaltfläche Recreate Gantt wird Gantt initialisiert, Aufgaben geladen und Events angehängt. Das Zerstören von Gantt trennt diese Events wieder.
Beachten Sie bei der Verwendung dieses manuellen Reset-Ansatzes folgende wichtige Punkte:
Wenn die Seite mit Gantt geladen wird, speichern Sie die Event-IDs in einem Array, bevor Sie diese hinzufügen:
const onTaskClick = gantt.attachEvent('onTaskClick', (id) => {
gantt.message(`onTaskClick: Task ID: ${id}`);
return true;
}, '');
eventIDs.push(onTaskClick);
Beim Wechsel zu einer anderen Seite trennen Sie die Events manuell mit den gespeicherten IDs:
eventIDs.forEach(event => gantt.detachEvent(event));
eventIDs = [];
Weitere Informationen finden Sie im Abschnitt Events trennen.
Der dataProcessor muss manuell zerstört werden:
dp.destructor();
Beachten Sie, dass nur der dataProcessor zerstört werden sollte, nicht die Gantt-Instanz selbst. Das Zerstören von Gantt verhindert die weitere Nutzung, bis die Seite neu geladen wird.
Diese können Sie sicher mit der Methode clearAll() aus der Gantt-Instanz entfernen.
Es gibt keine integrierte Option, um die Gantt-Konfiguration zu speichern oder auf die Standardwerte zurückzusetzen. Die meisten Einstellungen werden im Objekt gantt.config gespeichert.
Falls benutzerdefiniertes CSS hinzugefügt wurde und Probleme verursacht, muss dieses manuell entfernt werden.
Kalendereinstellungen sollten manuell mit der Methode gantt.deleteCalendar() entfernt werden.
Neben den oben genannten Punkten kann es weitere Szenarien geben, die zusätzliche Maßnahmen erfordern. Allerdings wurden mit diesem Ansatz noch nicht alle möglichen Fälle vollständig getestet.
Zurück nach oben