투두 완료 및 삭제하기
1. 개요
2. Controller
import Todos from "../models/todos.js";
import { $ } from "../utils/dom.js";
import View from "../views/view.js";
export default class Controller {
constructor() {
this.todosModel = new Todos();
this.view = new View();
this.eventHandler();
}
addTodo = () => {
this.todosModel.addTodo();
View.todoRender(this.todosModel.todos);
};
toggleTodo = (todoId) => {
this.todosModel.toggleTodo(todoId);
View.todoRender(this.todosModel.todos);
};
deleteTodo = (todoId) => {
this.todosModel.deleteTodo(todoId);
View.todoRender(this.todosModel.todos);
};
eventHandler = () => {
$("todo-form").addEventListener("submit", (e) => {
e.preventDefault();
this.addTodo();
});
$("todo-list").addEventListener("click", ({ target }) => {
const { id } = target;
const { todoId } = target.closest("li").dataset;
if (id === "todo-done-btn") {
this.toggleTodo(todoId);
return;
}
if (id === "todo-delete-btn") {
this.deleteTodo(todoId);
return;
}
});
};
}2-1. Controller - 이벤트 핸들러 추가
2-2. Controller - TODO 완료하기
2-3. Controller - TODO 삭제하기
3. Model
3-1. Model - TODO 완료하기
3-2. Model - TODO 삭제하기
4. View
5. Conclusion
Last updated