element-ui的el-checkbox-group回显失败,尝试多种办法,最终解决

最近几天适用vue-cli3.x结合element-ui做后台管理发现编辑时el-checkbox-group回显不了,并且要点击两次才能选择,在网上搜索,没有见到什么解决办法,就自己在哪里瞎琢磨,最后发现问题就是在提交和返回的数据这里

我跟后台约定提交什么,还返回什么,可是实际返回的数据却无法渲染,最后使用遍历的方式从多选框的数据源取出了对应的数据,然后用这些数据渲染就可以正常显示了
如果这样还不行,那就取出返回数据里面的id,代码如下:
vue代码:



<el-checkbox v-model=“ruleForm.orderCheckAll” :indeterminate=“isOrderIndeterminate” :disabled=“ruleForm.scopeApplicationType2" @change=“handleOrderCheckAllChange”>全部
<el-checkbox-group v-model=“ruleForm.checkedOrders” :disabled="ruleForm.scopeApplicationType
2” @change=“handleCheckedOrderChange”>
{{ order.name }}




script代码:
this.applyOrder=[{ id: 1, name: ‘一口价订单’ }, { id: 2, name: ‘拍卖’ }, { id: 4, name: ‘直播’ }] //el-checkbox-group的数据源,用来渲染列表
var orderArr = JSON.parse(this.ruleForm.scopeOrder) //后台返回的数据是JSON格式: “[{“id”:1,“name”:“一口价订单”},{“id”:2,“name”:“拍卖”}]” ,先parse一下,如果后台直接返回数组就不用
var idsArr=[]
for(var i=0;i<orderArr.length;i++){//取出id
idsArr.push(orderArr[i].id)
}
var arr = []
for(var i=0;i<this.applyOrder.length;i++){
if(idsArr.indexOf(this.applyOrder[i].id)>-1){
console.log(orderArr.indexOf(this.applyOrder[i]))
arr.push(this.applyOrder[i])
}
}
this.ruleForm.checkedOrders = arr //然后把取出来的数据赋值给表单中v-model绑定的字段
我提交的格式是[{id:1,name:‘一口价’},{id:2,name:‘拍卖’}],后台智能接收字符串,我就JSON.stringfy了一下才提交,就是选择了什么就提交什么,并不是取出id提交,可能是后台操作后再返回这样导致数据相关属性缺失,从而不能使页面实时更新

反正问题解决了,感觉真的很坑,所以记录一下,顺便提醒一下小伙伴

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值