我想提供多个复选框,当用户选择时向后台请求数据。但数据很多,复选框很多,我想用循环数组给复选框赋值,但是不知道该怎么写。请问这种思路可行吗?该怎么赋值choose1,choose2,checked1,checked2……呢?
vue部分
<div v-for="(arr,index) in params,params.length">
<a-checkbox @change="choose[index]" v-model:checked="checked[index]">{{arr}}a-checkbox>
div>
js部分
const params=['苹果','桃子','香蕉','西瓜','梨']
for(let j in params){
const checked[j]=ref('false')
}
for(let j in params.length){
if(checked[j].value){
const choose[j]=()=>{
axios.post('/api/xx',{
content: params[j]
})
}
}
}
已解决,用的复选框组,获得了自己想要的筛选数据。
<a-checkbox-group v-model:value="checkedList" :options="option" @change="choose"/>
const option=['苹果','桃子','香蕉','西瓜','梨']
const checkedList = ref<[]>();
const choose =()=>{
alert(checkedList.value)
}
可行 不过 我建议 params 写成 数组对象 [{name:"苹果",checked:true},xxxx] .
@change="choose(item)" 然后change里 就可以 先 循环 params 然后 判断 穿过来的值 赋值 checked属性
change(data){
params.map((item) => {
if(item.name==data.name){
item.checked=xxx
}
})
}
不过你为哈不用复选框 组呢
不知道你这个问题是否已经解决, 如果还没有解决的话: