购物车如果已选中商品就可以删除,否则不可以这个效果怎么实现?代码表达?(vue
时间: 2023-06-08 22:03:48 浏览: 49
框架)
可以通过判断商品是否被选中来控制删除按钮的状态。具体实现可以在 data 中定义一个选中状态的数组 selectedGoods,在 template 中将每个商品的选中状态绑定到一个复选框上。然后在删除按钮处添加一个点击事件,遍历 selectedGoods,如果有一个商品被选中,则允许删除按钮被点击,否则禁用。代码示例如下:
```
<template>
<div>
<div v-for="item in goodsList" :key="item.id">
<input type="checkbox" v-model="selectedGoods[item.id]">{{item.name}}
</div>
<button @click="deleteGoods" :disabled="!canDelete">删除</button>
</div>
</template>
<script>
export default {
data() {
return {
goodsList: [
{id: 1, name: '商品A'},
{id: 2, name: '商品B'},
{id: 3, name: '商品C'}
],
selectedGoods: {}
}
},
computed: {
canDelete() {
for (let id in this.selectedGoods) {
if (this.selectedGoods[id]) {
return true
}
}
return false
}
},
methods: {
deleteGoods() {
for (let id in this.selectedGoods) {
if (this.selectedGoods[id]) {
delete this.goodsList.find(item => item.id === parseInt(id))
}
}
this.selectedGoods = {}
}
}
}
</script>
```