게시판 댓글의 수정 기능을 구현해 보았다.
자바 스크립트의 fetch를 사용하여 비동기로 작동된다.
[해결점1] 자바 스크립트에서 보내는 데이터를 컨트롤러에서 어떻게 전달받는가?
자바스크립트에서 fetch()의 body: 에 입력을 처리할 데이터를 담아서 보내고,
컨트롤러에서 @RequestParam 을 사용하여 데이터를 받아 사용한다.
[해결점2] 여러개의 댓글이 작성될 경우, 어떻게 해당 댓글을 찾아서 이벤트를 발생시킬 것인가?
참고문서: ko.javascript.info/event-delegation#tasks
이벤트의 위임에 대해서 학습해볼 필요가 있다.
Dom을 선택할 때 QuerySelectorAll을 사용하여, 0번째, 1번째 클릭했을 때를 판단하며 처리할 수 있겠지만,
e.target.closest(selector); 함수를 사용하면 e.target의 조상 selector 에 가장 근접한 것을 선택할 수 있고, 이를 이용하여 내가 원하는 버튼에 이벤트를 실행할 수 있게 된다.
아래의 자바스크립트 코드는 이를 이용하여 댓글이 2개 이상이라도 원하는 댓글Id 값을 찾아서 컨트롤러로 데이터를 보내어 댓글을 수정한다.
community/list
BoardController.java
datail.js