Beim Arbeiten mit Links im Gantt-Diagramm ist es wichtig zu wissen, wie man das Objekt oder die ID eines Links abrufen kann. Viele Methoden erfordern das Link-Objekt oder die ID als Parameter, und auch benutzerdefinierte Link-Szenarien hängen von diesen Informationen ab.
Um ein Link-Objekt abzurufen, kann die Methode gantt.getLink
verwendet werden:
gantt.getLink("link1"); //-> {id:"link1", source:1, target:2, type:1}
Um alle im Diagramm verfügbaren Links abzurufen, ist die Methode gantt.getLinks
nützlich:
var links = gantt.getLinks();
Dies gibt ein Array zurück, das alle Link-Objekte enthält.
Links, die mit einer bestimmten Aufgabe verknüpft sind, können über die $source- und $target-Eigenschaften des Aufgabenobjekts abgerufen werden. 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 ausgehender Links var targetLinks = taskObj.$target; //-> ["l5","l8"] - IDs eingehender Links
Die task.$source- und task.$target-Eigenschaften sind dynamische Eigenschaften des Aufgabenobjekts. Sie werden nicht in der Datenbank gespeichert, sondern nach dem Laden der Daten dynamisch zum Aufgabenobjekt hinzugefügt.
const task = gantt.getTask(1);
const source = task.$source;
// Links, die von der Aufgabe ausgehen,
// wobei `task #1` in diesen Beziehungen als Vorgänger fungiert
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,
// wobei `task #1` in diesen Beziehungen als Nachfolger fungiert
target.forEach(function(linkId) {
const link = gantt.getLink(linkId);
console.log(link);
// { id: linkId, source: sourceTaskId, target: 1, ...}
});
Die ID eines Links kann in der Regel im links-Objekt des Datensatzes gefunden werden.
{
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 bestimmten "target", "source" oder "type" Werten finden müssen, können Sie den folgenden Ansatz verwenden:
// Suche nach einem Link von der Aufgabe mit id=1 zur Aufgabe mit id=2
var links = gantt.serialize().links; // Gibt alle Links zurück
for(var i=0; i<links.length; i++){ // Iteriert durch alle Links
if ( (links[i].source == 1) && (links[i].target == 2) )
var linkId = links[i].id;
};
Wenn Sie die ID eines Links aktualisieren müssen, kann die Methode gantt.changeLinkId
verwendet werden:
gantt.changeLinkId(1274, "link14"); // Ändert die Link-ID: 1274 -> "link14"
Zurück nach oben