我是新來Vue.js,我試圖創建一個應用程序商店與Vue公司 & 的WebPack。我在json
文件中有一些產品,並使用v-for
進行渲染。推到陣列V模型
當點擊添加到購物車按鈕,它應該把產品編號和選定的數量放到一個數組。
如何正確增加特定產品的數量? 到目前爲止,我有以下幾點:
<template>
<div v-for="(product, index) in products" >
<div><img :src="product.product_image" /></div>
<div>
<input type="number" min="0" v-model="qty[index]" />
<button @click="addToCart(product.id, qty[index])">Add to cart</button>
</div>
</div>
</template>
<script>
import productList from '../products.json';
export default{
name: 'shop',
data(){
return {
products: productList,
cartElements: [],
qty: [],
}
},
props: [ 'itemsInCart' ],
methods:{
addToCart(product_id, quantity){
this.cartElements.push({
"id" : product_id,
"quantity" : quantity,
});
console.log(this.cartElements);
},
},
}
</script>
結果是正常的,但輸入字段會怪怪的。
例如如果我增加第三個產品的輸入,它將第一個和第二個產品輸入設置爲1
,然後纔將第三個輸入設置爲所需的數字。
也許你可以創建一個的jsfiddle使你能幫助的人瞭解你的問題,並得到更快的答案。我可以做出很多猜測,但我需要測試它。 –
起初'qty [index]'不存在,我想你必須先用'productList'在'created'初始'qty'! – MHS
我不得不在沒有webpack的情況下做到這一點,但是使用簡單的vue.js,它會是這樣的:https://jsfiddle.net/vo7y02eg/ – renataedit