[AngularJS] 11. AngularJS로 게시판 만들기(3)
BOARD WRITE
글 작성 기능을 추가하였다.
글 상세보기에 대한 틀을 가져와 form 형태로 바꿔주기만 했다.
form을 만들어 angularJS를 통해 form에 대한 확장된 기능을 사용할 수 있도록 구성하였다.
form에 name을 정의하고 각 컨트롤 요소마다 ng-model 디렉티브를 정의하여
form submit 시 해당 컨트롤러의 scope에는 form과 form의 컨트롤 요소의 상태에 대한 값들을 저장하게 된다.
form submit시 호출하는 uploadBoard 함수도 추가하였다.
각 컨트롤 요소를 파라미터에 담아 http통신을 post방식으로 요청하는 객체를 리턴하는 함수이다.
$modelValue는 각 컨트롤 요소가 바인딩된 모델 값을 말한다.
http 요청을 받게 되면 html에서 요청받은 값을 ObjectMap 형식으로 받게 된다.
이 파라미터 값 안에는 params라는 Map형태의 값이 있고 그 안에 위에서 보냈던 각 컨트롤 요소의 값이 key:value형태로 들어있다.
61LINE을 보면 params라는 값을 가져와서 Map형태로 다시 저장하는 걸 볼 수 있다.
요청받은 값을 받고 다시 또 다른 형태로 값을 꺼내서 저장한다는 방식이 맘에 들지 않는다.
추후에 더 좋은 방식으로 코드를 개선할 것이다.
여기서 값에 대한 유효성 검사를 하게 된다.
유효성 검사는 간단하게 값의 존재 여부만을 검사하게 된다.
지금은 백 단에서만 유효성 검사를 하게 되어있다.
추후에 프론트 단에서 angularJS를 이용해 유효성 검사를 하는 코드를 추가할 것이다.
아무튼 요청에 대한 처리가 정상적으로 끝나게 되면 'list' state로 이동하게 된다.
반면에 유효성 검사를 통과하지 못하면, 응답 code와 message를 alert으로 띄우게 된다.
state를 이동하고 나서 새로고침을 해야 업로드했던 게시글이 표시가 된다.
state 이동하고 나서 reload할 수 있는 방법을 찾아야 할 것 같다.