Closed kyung8721 closed 1 month ago
오류나서 이유 수집 중.. 참고 중 https://okky.kr/questions/1157886
해결해야 하는 것
Uncaught TypeError: Cannot read properties of undefined (reading 'title') ajax로 데이터를 받아오는 것 까지는 됐는데 이런 오류가 뜨면서 for 문 바깥으로 빠져나가질 못했다.
원래 코드
$.ajax({
type : "post"
, url : "/budgetBook/money/calendar/dayList"
, data : {}
, success : function(data){
var ajaxevent = [];
for(let i = 0 ; data.length >= i ; i++){
let title = data[i].title;
let start = data[i].start;
let backgroundColor = data[i].backgroundColor;
let borderColor = data[i].borderColor;
let textColor = data[i].textColor;
ajaxevent.push({
"title" : title
, "start" : start
, "backgroundColor" : backgroundColor
, "borderColor" : borderColor
, "textColor" : textColor
});
};
}
, error : function() {
alert("달력 데이터 받아오기 에러!")
}
});
해결 : 변수를 불러올 때 앞에 ?를 붙여준다.
let title = data[i]?.title;
let start = data[i]?.start;
let backgroundColor = data[i]?.backgroundColor;
let borderColor = data[i]?.borderColor;
let textColor = data[i]?.textColor;
아직 고쳐야 할 건 많지만 데이터 불러오기는 됐다!!!!!!!!
같은 날짜에 겹쳐서 나오는 것 : list에 저장을 항상 하면 중복되는 게 있을 때마다 map에 또 값이 들어가서 생기는 현상이었음. 날짜 바뀔 때만 저장되게 변경함. 계산이 이상하게 되는 것 : 날짜 계산할 때 수입/지출/이체 모두 같은 날짜 변수를 사용해서 생기는 것이었음. 예를 들어 지출에서 5일에서 8일로 날짜가 바뀌고 수입의 그 전 내역 날짜가 5일, 다음 내역 날짜가 6일이면 5일에 그대로 값이 더해졌던 것이었음. 수입/지출/이체 모두 다른 날짜 변수를 써서 해결.
document.addEventListener('DOMContentLoaded', function() {}) 안에
$(".fc-next-button").on("click", function() {
let date = calendar.getDate();
alert(date);
});
이런식으로 날짜를 얻는 이벤트를 추가하면 그 달의 첫째날 date를 가져와줌
버튼 클릭해서 달이 넘어가면 데이터를 새로 받아와서 캘린더에 표시하고 싶은데 어떻게 해야 되는지 잘 모르겠다... 달력 새로고침도 잘 안되고 삭제하고 다시 보여주는 것도 녹록지 않고...ㅜㅜ
데이터를 받아오긴 했으나 이걸 달력에 어떻게 넣어야 할지 고민 중. 이 데이터를 원래 넣은 데이터와 교체하고 싶다....
event에 function을 이용한 방법으로 원했던 걸 구현했다!!!!
참고 블로그 : https://junesker.tistory.com/93
이런식으로 진행되므로 ajax로 map에 넣어서 수입, 지출을 가져오면 될 듯.