[DEV] 기록

[javascript] Invalid shorthand property initializer

꾸준함. 2022. 3. 4. 00:03

개요

컨트롤러에서 모델 내 리스트를 보냈고 해당 리스트를 자바스크립트 함수 내에서 조작하려고 아래와 같이 변수로 선언했습니다.

function sampleFunction() {
	var sampleList = [[${listFromModelAttribute}]];
}

 

 

 

기존 프로젝트에서는 위와 같이 처리를 하면 list를 알아서 json 형태로 변형하여 문제가 없었는데 현재 진행하고 있는 프로젝트에서는 jQuery 버전이 달라서 그런지 json 형태로 변형이 안되어 아래와 같은 에러 메시지가 console에 찍히면서 제대로 동작하지 않고 있습니다.

Invalid shorthand property initializer

 

원인

해당 문제가 발생하는 이유는 json object 내 key value를 '='이 아닌 ':'로 구분 지어야 하는데 '='로 구분 지었기 때문에 발생하는 문제였습니다.

 

해결 방법

원인에서도 말했다시피 key, value를 아래와 같이 ':'로 구분지으면 해결되는 문제입니다.

var sample = {
	key = value;
} (X)

var sample = {
	key: value;
}

 

모델에서 꺼내온 list를 json으로 변형하는 방법을 알아내면 추가적으로 게시글을 작성하도록 하겠습니다.

* 타임리프의 inline javascript와 기본 javascript의 문법이 살짝 다른 것 같습니다. gson 라이브러리를 사용하여 JSONArray로 Controller에서 View로 보냈고 javascript 내에서는 아래와 같이 list를 꺼내니 해결이 되었습니다. (2022.03.04)

function sampleFunction() {
	var sampleList = ${listFromModelAttribute};
}
반응형