마지막에 숙제로 모달창을 html 내용으로 채워오라고 하셨는데요
<div v-for="(원룸, i) in 원룸들" :key="i">![]()
<h4 @click="showModal(원룸들[i])">{{ 원룸.title }}</h4>
<p>{{ 원룸.price }}원</p>
</div>
이런식으로 메인페이지에서 상품들을 보여주고
export default {
name: 'App',
data() {
return {
원룸들: data,
모달창열렸니: false,
신고수: [0, 0, 0],
메뉴들: ['Home', 'Shop', 'About'],
products: ['역삼동원룸', '청호동원룸', '마포구원룸'],
product: {},
}
},
methods: {
increase(i) {
this.신고수[i]++;
},
showModal(product) {
this.product = product;
this.모달창열렸니 = true;
},
removeModal() {
this.모달창열렸니 = false;
}
},
components: {
}
}
showModal 함수를 이렇게 짜서 product 변수에 클릭한 아이템의 객체를 통째로 넣고 모달창에선
<div class="black-bg" v-if="모달창열렸니 == true">
<div class="white-bg">
<h4>{{ product.title }}</h4>
<p>가격 : {{ product.price }}원</p>
<button @click="removeModal">닫기</button>
</div>
</div>
이런식으로 나오게 해놨습니다. 문제는 위에 이런식으로 하면 제 의도대로 잘 나오는데 메인페이지 상품들 보여주는 코드를 짤때
<h4 @click="showModal(원룸)">{{ 원룸.title }}</h4>
이런식으로 하고 클릭하면 모달창에선 계속 0번째 인덱스 아이템만 보여줍니다.. '원룸'하고 '원룸들[i]' 둘다 찍어보면 같은 객체가 나오는데 왜이러는 걸까요.. showModal 함수를
showModal(product) {
this.product = product;
this.모달창열렸니 = true;
console.log(product);
}
이런식으로 해서 콘솔을 보면 계속 product로 0번째 객체만 넘어옵니다.. 이거 왜 이럴까요?