다중 선택 및 일괄 작업
To Do List 라이브러리를 사용하면 여러 태스크를 선택하고 한 번에 관리할 수 있습니다.

UI를 통해 태스크를 선택하고 여러 태스크를 관리하는 방법을 알아보세요.
초기 선택 태스크
초기에 선택된 태스크가 있는 To Do List를 만들려면 selected 구성 속성을 사용하세요. 아래 예제는 초기화 시 세 개의 태스크를 미리 선택합니다:
const list = new ToDo("#root", {
tasks: [
{ id: "1", text: "Task 1" },
{ 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" },
{ id: "2", text: "Task 2" },
{ id: "2.1", text: "Task 2.1", parent: "2" },
{ id: "2.1.1", text: "Task 2.1.1", parent: "2.1" },
{ id: "2.2", text: "Task 2.2", parent: "2" },
],
selected: ["1.1", "1.2", "2.2"],
});
console.log(list.getSelection()); // ["1.1", "1.2", "2.2"]
태스크 선택
초기화 이후 태스크를 선택하려면 selectTask() 메서드를 사용하세요. 이 메서드는 두 개의 파라미터를 받습니다:
id- 선택할 태스크의 idjoin- 기존 선택에 태스크를 추가할지 여부
태스크 하나 선택
기본적으로 join 파라미터는 false로 설정됩니다. 이 메서드는 지정된 태스크만 선택하고 이전에 선택된 태스크는 해제합니다.
아래 코드 조각은 현재 선택을 단일 태스크로 교체합니다:
const list = new ToDo("#root", {
tasks: [
{ id: "1", text: "Task 1" },
{ 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" },
{ id: "2", text: "Task 2" },
{ id: "2.1", text: "Task 2.1", parent: "2" },
{ id: "2.1.1", text: "Task 2.1.1", parent: "2.1" },
{ id: "2.2", text: "Task 2.2", parent: "2" },
],
selected: ["1.1", "1.2", "2.2"],
});
console.log(list.getSelection()) // ["1.1", "1.2", "2.2"]
list.selectTask({
id: "2.1",
join: false // 이전에 선택된 태스크의 선택을 해제합니다
});
console.log(list.getSelection()) // ["2.1"]
여러 태스크 선택
여러 태스크를 선택하려면 join 파라미터를 true로 설정하세요. 그러면 selectTask() 메서드가 지정된 태스크를 현재 선택에 추가합니다.
아래 예제는 루프를 사용하여 여러 태스크를 선택합니다:
const list = new ToDo("#root", {
tasks: [
{ id: "1", text: "Task 1" },
{ 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" },
{ id: "2", text: "Task 2" },
{ id: "2.1", text: "Task 2.1", parent: "2" },
{ id: "2.1.1", text: "Task 2.1.1", parent: "2.1" },
{ id: "2.2", text: "Task 2.2", parent: "2" },
]
});
const selected = ["1.1", "1.2", "2.2"];
for (id of selected) {
list.selectTask({ id, join: true });
}
console.log(list.getSelection()) // ["1.1", "1.2", "2.2"]
아래 코드 조각은 기존 선택에 태스크를 하나 더 추가합니다:
console.log(list.getSelection()) // ["1.1", "1.2", "2.2"]
list.selectTask({ id: "2.1", join: true });
console.log(list.getSelection()) // ["1.1", "1.2", "2.2", "2.1"]
선택된 태스크 전체 가져오기
현재 선택된 모든 태스크의 id를 가져오려면 getSelection() 메서드를 사용하세요. 아래 예제는 정렬되지 않은 출력과 정렬된 출력의 차이를 보여줍니다:
// 정렬 - 비활성화
list.getSelection({ sorted: false }); // ["1.2", "1.1", "2.2", "2.1"]
// 정렬 - 활성화
list.getSelection({ sorted: true }); // ["1.1", "1.2", "2.1", "2.2"]
sorted 파라미터를 활성화하면 선택된 태스크의 ID를 화면에 표시된 순서대로 가져올 수 있습니다.
선택된 태스크 관리
여러 태스크를 선택한 후, 모든 태스크에 한 번에 작업을 적용할 수 있습니다.
라이브러리는 선택된 모든 태스크를 순회하기 위한 eachSelected() 메서드를 제공합니다. 이 메서드는 정렬과 반복 방향을 제어하는 추가 파라미터 sorted 및 reversed를 받습니다.
아래 예제는 선택된 모든 태스크를 삭제합니다:
list.eachSelected(id => {
list.deleteTask({ id });
}, true);
사용 가능한 작업 목록
API 메서드를 통해 선택된 여러 태스크에 대해 다음과 같은 일괄 작업을 수행할 수 있습니다:
copyTask()- 태스크 복사pasteTask()- 태스크 붙여넣기moveTask()- 태스크 이동deleteTask()- 태스크 삭제checkTask(),uncheckTask()- 태스크를 완료 또는 미완료로 표시indentTask(),unindentTask()- 태스크의 중첩 수준을 내리거나 올리기
선택 해제
태스크 하나 선택 해제
하나의 태스크에서 선택을 해제하려면 태스크 id를 unselectTask() 메서드의 파라미터로 전달하세요. 아래 코드 조각은 단일 태스크의 선택을 해제합니다:
list.unselectTask({ id: "1.1" });
모든 태스크 선택 해제
현재 선택된 모든 태스크의 선택을 해제하려면 unselectTask() 메서드에 id: null을 전달하세요:
list.unselectTask({ id: null });
키보드 단축키
자세한 내용은 키보드 내비게이션 가이드를 참고하세요.