element ui 中 el-checkbox-group 如何设置默认选中

image.png

里面的brandCheckList 为我点击check的数组集合,Economics为我的静态数据,数组对象形式的el-checkbox-group 如何设置默认选中?

image.png

设置默认值没有效果,label绑定的是一个对象的时候就失效了
fa7af2f7d9681b2a06dfa6e6065c3e5.png

阅读 10.5k
3 个回答

这个不支持对象
image.png
给你一个骚操作, 把这个对象JSON.stringify一下, 用的时候在JSON.parse转回来

<el-checkbox-group v-model="checkList" @change="changeList">
    <el-checkbox v-for="(item, index) in allCheckList" :key="index" :label="JSON.stringify(item)">{{item.name}}</el-checkbox>
</el-checkbox-group>
checkList = []
allCheckList = [
{ name: '飘柔', value: '39502', checked: false },
{ name: '如家', value: '32', checked: false },
{ name: '汉庭', value: '56', checked: false },
{ name: '7天', value: '43', checked: false },
{ name: '晋江', value: '456', checked: false },
{ name: '太低', value: '345', checked: false },
{ name: '便捷', value: '874', checked: false },
{ name: '尘世便捷', value: '123', checked: false },
{ name: '哈哈', value: '000', checked: false },

]
获取到数据的时候JSON.stringify一下

let arr = [
  { name: '飘柔', value: '39502', checked: false },
  { name: '如家', value: '32', checked: false },
];
this.checkList = arr.map((v) => {
  return JSON.stringify(v);
});

使用数据的时候JSON.parse一下

changeList(arr) {
  if (arr && arr.length) {
    let result = arr.map((v) => {
      return JSON.parse(v);
    });
    console.log(result);
  }
}

最后建议不要用这个方法, 因为你必须保证选中的对象和默认列表的对象完全一致,才会勾选上,看你的数据你会有fiterTypeByOne\checked这两个属性不知道会不会变化, 如果发生变化, 你就无法默认选中了
我自己遇到这种情况是只用el-checkbox循环不用el-checkbox-group

其实可以绑定对象的
绑定的写法::label="item"
回显的时候要注意:v-model="brandCheckList" 这个数组里面的元素要和 el-checkbox 的循环数据源 Economics 数组内的元素内存地址要一致,也就是说,你初始化默认选中的时候,要基于Economics 数组进行遍历,然后 push 你想默认选中的元素对象给 brandCheckList。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏