awSAT
11
2019-10-12 00:55:33 작성 2019-10-12 00:56:22 수정됨
4
212

자바스크립트 질문 있습니다. ㅠ


안녕하세요. 초보개발자입니다 ㅠㅠ


친구와 함께 졸업과제 겸해서 SNS서비스를 만들어보고 있는데 막히는 부분이 있어서 질문드립니다.

Spring으로 작업하고 있고, AJAX를 이용해서 DB에서 댓글 목록을 가져온 다음

Handlebars.js 템플릿을 이용해 화면에 표시합니다.


컨트롤러에선  ResponseEntity<Map<String,Object>>로 리턴하고 (JSON으로 받습니다. function(data)),

Map 에는 comments란 이름으로  List<CommentVO> 형식으로 들어있습니다.


console.log로 data.comments를 찍어보면, 위 사진 처럼 나오구요.

원하는건 일반 SNS 처럼 한페이지에 게시글이 쭉 있고, 그 게시글에 댓글목록이 표시되는 형식입니다.

당연하게도 data.comments를 그대로 template에서 반복문을 돌리면

게시물 번호를 필터링할 방법이 없으니 위의 항목이 전부 돌고 마지막값이 찍힙니다.



그래서 생각해본게 사진에 표시한것 처럼 값을 각각 나눠서 처리해보려고 하는데

이걸 나눠서 처리할 방법이 있는지 궁금합니다.


검색 키워드라도 알려주시면 찾아보려구요 ㅠㅠ

글 읽어주셔서 감사합니다.

0
0
  • 답변 4

  • JavaAPI
    2019-10-12 10:52:26

    댓글리스트를 반복문을 돌면서 리스트를 뿌려주고싶으시면..

    success : function(data){

       for(var i in data.comments) {

          data[i].게시글번호 컬럼 

       }

    }

    0
  • awSAT
    11
    2019-10-12 13:29:32

    JavaAPI님 도움 감사합니다. 제가 너무 어렵게 생각했었나보네요.

    컨트롤러에서 게시글 번호만 중복없이 가져오는걸 추가해서 


    $.each(data.commentsPostId, function(idxId, id){

    var cmtArr = new Array();

    $.each(data.comments, function(idxCmt, cmt){

    if(data.commentsPostId[idxId] === data.comments[idxCmt].commentPostId){

    cmtArr.push(data.comments[idxCmt]);

    }

    });

    // 댓글 표시

    });

    처럼 배열에 넣은다음에 찍고 초기화 하는식으로 해결했습니다.

    0
  • JavaAPI
    2019-10-12 16:13:30

    디비에서 게시글번호 distinct하시면되지않나요?

    0
  • awSAT
    11
    2019-10-12 20:56:37

    아 게시글 번호는 sql문에서 distinct로 가져오구요.

    controller에서 리턴하는 Map<String, Object>에 추가 했다는 소리였어요. ㅎㅎ

    1
  • 로그인을 하시면 답변을 등록할 수 있습니다.