Zum Hauptinhalt springen

Aufgabenobjekt/Id

Ein Aufgabenobjekt abrufen

Um ein Aufgabenobjekt abzurufen, verwenden Sie die Methode getTask(). Das folgende Beispiel ruft eine Aufgabe anhand ihrer ID ab:

const tasks = [
{ id: "1", text: "Task 1" },
{ id: "1.1", text: "Task 1.1", parent: "1" },
{ id: "1.2", text: "Task 1.2", parent: "1" },
];

const list = new ToDo("#root", { tasks });

list.getTask({ id: "1.2" }); // -> {id: '1.2', text: 'Task 1.2', parent: '1'}

Prüfen, ob eine Aufgabe vorhanden ist

Um zu prüfen, ob eine Aufgabe vorhanden ist, verwenden Sie die Methode existsTask(). Der folgende Code-Ausschnitt prüft zwei IDs:

const tasks = [
{ id: "1", text: "Task 1" },
{ id: "1.1", text: "Task 1.1", parent: "1" },
{ id: "1.2", text: "Task 1.2", parent: "1" },
];

const list = new ToDo("#root", { tasks });

list.existsTask({ id: "2" }); // -> false
list.existsTask({ id: "1.2" }); // -> true

Unteraufgaben-IDs abrufen

Um die Unteraufgaben einer Aufgabe abzurufen, verwenden Sie die Methode getChildrenIds(). Das folgende Beispiel gibt alle Nachkommen einer Aufgabe zurück:

const tasks = [
{ id: "1", text: "Task 1 #tag1" },
{ id: "1.1", text: "Task 1.1", parent: "1" },
{ id: "1.1.1", text: "Task 1.1.1 #tag1", parent: "1.1" },
{ id: "1.2", text: "Task 1.2", parent: "1" },
];

console.log(list.getChildrenIds({ id: "1" })); // ['1.1', '1.1.1', '1.2']
console.log(list.getChildrenIds({ id: "1", tree: false })); // ['1.1', '1.2']

Durch Filtern können einige Aufgaben auf der Seite ausgeblendet werden. Der Parameter filtered legt fest, ob ausgeblendete Aufgaben im Ergebnis erscheinen. Setzen Sie ihn auf true, um sie auszuschließen (Standard ist false). Der folgende Code-Ausschnitt zeigt beide Optionen:

// Aufgaben filtern
list.setFilter({ match: "#tag1", highlight: true });

// Unteraufgaben nach dem Filtern abrufen
console.log(list.getChildrenIds({ id: "1", filtered: false })); // -> ['1.1', '1.1.1', '1.2']

// Den Parameter "filtered" aktivieren
console.log(list.getChildrenIds({ id: "1", filtered: true })); // -> ['1.1', '1.1.1']

Setzen Sie tree auf false, um nur Unteraufgaben der ersten Ebene zurückzugeben:

console.log(list.getChildrenIds({ id: "1", filtered: true, tree: false })); // -> ['1.1']
console.log(list.getChildrenIds({ id: "1", filtered: false, tree: false })); // -> ['1.1', '1.2']

Setzen Sie hideCompleted auf true, um abgeschlossene Unteraufgaben auszuschließen. Das folgende Beispiel kombiniert filtered, tree und hideCompleted auf verschiedene Weisen:

const tasks = [
{ id: "1", text: "Task 1 #tag1" },
{ id: "1.1", text: "Task 1.1", parent: "1" },
{ id: "1.1.1", text: "Task 1.1.1 #tag1", parent: "1.1", checked: true },
{ id: "1.2", text: "Task 1.2", parent: "1" },
];

// vor dem Filtern
console.log(list.getChildrenIds({ id: "1", tree: true, hideCompleted: false })); // -> ['1.1', '1.1.1', '1.2']

console.log(list.getChildrenIds({ id: "1", tree: true, hideCompleted: true })); // ['1.1', '1.2']

// Aufgaben filtern
list.setFilter({ match: "#tag1", highlight: true });

// nach dem Filtern
console.log(list.getChildrenIds({ id: "1", filtered: true, tree: true, hideCompleted: false})); // -> ['1.1', '1.1.1']
console.log(list.getChildrenIds({ id: "1", filtered: true, tree: true, hideCompleted: true })); // -> ['1.1']

console.log(list.getChildrenIds({ id: "1", filtered: false, tree: true, hideCompleted: false})); // -> ['1.1', '1.1.1', '1.2']
console.log(list.getChildrenIds({ id: "1", filtered: false, tree: true, hideCompleted: true})); // -> ['1.1', '1.2']

Prüfen, ob eine Aufgabe Unteraufgaben hat

Um zu prüfen, ob eine Aufgabe Unteraufgaben besitzt, verwenden Sie die Methode hasChildren(). Der folgende Code-Ausschnitt bestätigt, dass eine Aufgabe Unteraufgaben hat:

const tasks = [
{ id: "1", text: "Task 1 #tag1 #tag3" },
{ id: "1.1", text: "Task 1.1", parent: "1" },
{ id: "1.1.1", text: "Task 1.1.1 #tag1", parent: "1.1" },
{ id: "1.2", text: "Task 1.2", parent: "1" },
];

// prüfen, ob die Aufgabe Unteraufgaben hat (vor dem Filtern)
console.log(list.hasChildren({ id: "1.1" })); // -> true

Durch Filtern können einige Aufgaben auf der Seite ausgeblendet werden. Der Parameter filtered legt fest, ob gefilterte (ausgeblendete) Aufgaben im Ergebnis erscheinen (filtered: false standardmäßig) oder nicht (filtered: true):

// Aufgaben filtern
list.setFilter({ match: "#tag3", highlight: true });

// prüfen, ob die Aufgabe Unteraufgaben hat (nach dem Filtern)
console.log(list.hasChildren({ id: "1.1" })); // -> true
console.log(list.hasChildren({ id: "1.1", filtered: true })); // -> false

Setzen Sie hideCompleted auf true, um abgeschlossene Aufgaben aus dem Ergebnis auszuschließen:

const tasks = [
{ id: "1", text: "Task 1 #tag1 #tag3" },
{ id: "1.1", text: "Task 1.1", parent: "1" },
{ id: "1.1.1", text: "Task 1.1.1 #tag1", parent: "1.1", checked: true },
{ id: "1.2", text: "Task 1.2", parent: "1" },
];

console.log(list.hasChildren({ id: "1.1" })); // -> true
console.log(list.hasChildren({ id: "1.1", hideCompleted: true })); // -> false

Übergeordnete IDs abrufen

Um die übergeordneten Aufgaben einer Aufgabe abzurufen, verwenden Sie die Methode getParentIds(). Das folgende Beispiel gibt die vollständige Elternkette einer Aufgabe zurück:

const tasks = [
{ id: "1", text: "Task 1 #tag1" },
{ id: "1.1", text: "Task 1.1", parent: "1" },
{ id: "1.1.1", text: "Task 1.1.1", parent: "1.1" },
{ id: "1.2", text: "Task 1.2", parent: "1" },
];

const list = new ToDo("#root", { tasks });

console.log(list.getParentIds({ id: "1.1.1" })); // ['1.1', '1']

IDs ausgewählter Aufgaben abrufen

Um die IDs aller aktuell ausgewählten Aufgaben abzurufen, verwenden Sie die Methode getSelection(). Der folgende Code-Ausschnitt initialisiert die To-Do-Liste mit vorausgewählten Aufgaben und fügt eine weitere Auswahl hinzu:

const tasks = [
{ id: "1", text: "Task 1 #tag1" },
{ id: "1.1", text: "Task 1.1", parent: "1" },
{ id: "1.1.1", text: "Task 1.1.1", parent: "1.1" },
{ id: "1.2", text: "Task 1.2", parent: "1" },
];

const list = new ToDo("#root", {
tasks,
selected: ["1.1", "1.2"]
});

list.selectTask({
id: "1.1.1",
join: true
});

console.log(list.getSelection({ sorted: false })); // -> ["1.1", "1.2", "1.1.1"]