Beim Arbeiten mit Links im Gantt-Diagramm ist es wichtig zu verstehen, wie man auf das Link-Objekt oder die Link-ID zugreift. Die meisten Methoden erfordern das Link-Objekt (oder die ID) als Eingabeparameter. Zusätzlich müssen benutzerdefinierte, linkbezogene Szenarien auf das Link-Objekt oder die Link-ID referenzieren, um korrekt zu funktionieren.
Um ein Link-Objekt abzurufen, verwenden Sie die Methode getLink:
gantt.getLink("link1"); //-> {id:"link1", source:1, target:2, type:1}
Um alle aktuell im Diagramm angezeigten Links zu erhalten, verwenden Sie die Methode getLinks wie folgt:
var links = gantt.getLinks();
Dies gibt ein Array zurück, das alle Link-Objekte enthält.
Um die Links zu finden, die mit einer bestimmten Aufgabe verknüpft sind, prüfen Sie die Eigenschaften $source und $target des Aufgabenobjekts.
Diese Eigenschaften werden automatisch generiert und enthalten die IDs der zugehörigen Links:
var taskObj = gantt.getTask("t1");
var sourceLinks = taskObj.$source; //-> ["l1","l4"] - IDs der ausgehenden Links var targetLinks = taskObj.$target; //-> ["l5","l8"] - IDs der eingehenden Links
Die task.$source und task.$target sind dynamische Eigenschaften des Aufgabenobjekts, die die IDs der mit der Aufgabe verbundenen Links enthalten. Diese Eigenschaften werden nicht in der Datenbank gespeichert, sondern dynamisch zum Aufgabenobjekt hinzugefügt, sobald die Daten geladen sind.
const task = gantt.getTask(1);
const source = task.$source;
// Links, die von der Aufgabe ausgehen,
// `task #1` fungiert in diesen Beziehungen als Vorgänger
source.forEach(function(linkId) {
const link = gantt.getLink(linkId);
console.log(link);
// { id: linkId, source: 1, target: targetTaskId, ...}
});
const target = task.$target;
// Links, die auf die Aufgabe zeigen,
// `task #1` ist in diesen Beziehungen ein Nachfolger
target.forEach(function(linkId) {
const link = gantt.getLink(linkId);
console.log(link);
// { id: linkId, source: sourceTaskId, target: 1, ...}
});
In der Regel befindet sich die ID eines Links im links-Objekt des Datensatzes.
{
tasks:[...],
links:[
{ id:1, source:1, target:2, type:"1"}, //Link-ID = 1 { id:2, source:2, target:3, type:"0"}, //Link-ID = 2 { id:3, source:3, target:4, type:"0"} //Link-ID = 3 ]
}
Wenn Sie die ID eines Links mit einem bestimmten "target", "source" oder "type" Wert suchen müssen, können Sie den folgenden Ansatz verwenden:
// Suchen eines Links, der von der Aufgabe mit id=1 zur Aufgabe mit id=2 führt
var links = gantt.serialize().links; // gibt alle Links zurück
for(var i=0; i < links.length; i++){ // iteriert über alle Links
if ( (links[i].source == 1) && (links[i].target == 2) )
var linkId = links[i].id;
};
Um die ID eines bestehenden Links zu aktualisieren, verwenden Sie die Methode changeLinkId:
gantt.changeLinkId(1274, "link14"); // ändert die Link-ID von 1274 auf "link14"
Zurück nach oben