간략과정
- 유저가 국가를 선택하면 DB로 해당 국가의 id값이 들어간다
- 국가 id만을 알고있는 상태에서 Vue 인스턴스에 만들어둔 국가들의 배열 데이터에서 선택한 id값으로 국가의 이름을 알려줘야한다.
- 이걸 어떻게 찾아볼까 고민하다가 때마침 공부한 find()를 이용 할 수 있겠다는 생각이 들어서 응용해봤다!!
코드예시
countryLists: [
{
name: "Qatar",
className: "Qatar",
select: false,
id: 1,
},
{
name: "England",
className: "England",
select: false,
id: 2,
},
{
name: "Argentina",
className: "Argentina",
select: false,
id: 3,
},
]
- Vue 인스턴스의 로그인 된 유저가 최초 접속시, DB에 저장된 유저가 선택한 국가의 id값을 건네주는 메소드 부분
countrySelectCheckApi: async function () {
const vm = this;
await $.ajax({
url: "백엔드서버의 url",
type: "POST",
crossDomain: true,
data: {
cm: "정의된 콜메소드",
},
dataType: "jsonp",
}).done(function (data) {
const code = data.ResultCode[0].Code;
if (code === "10000") {
if (data["Qatar World Cup Event Info"].length !== 0) {
if (data["Qatar World Cup Event Info"][0].NationID !== 0) {
vm.countryCode =
data["Qatar World Cup Event Info"][0].NationID;
} else {
vm.countryCode = 0;
}
} else {
vm.countryCode = 0;
}
} else {
}
});
},
- Vue 인스턴스의 find()를 이용하여, 배열에서 값을 찾는 메소드 부분 <== 이게 핵심
searchNation: function () {
const vm = this;
const searchObject = vm.countryLists.find((el) => {
if (el.id === vm.countryCode) {
return true;
}
return false;
});
vm.selectData = searchObject;
console.log("찾은데이터", vm.selectData);
},