element UI el-select 绑定值为对象时设置默认值

适用场景描述:在项目中实现编辑功能时,如页面存在下拉框且下拉框的数据在点击相应的select时进行调用( 在编辑时可能需要修改部分数据,而且存在部分下拉数据并不是必选项,如果直接获取所有的下拉数据,可能会造成浪费 ),需要在下拉框内显示已有的值作为默认值,如图所示(以官网给的数据为例):

绑定值为字符串:
如果只是需要数据的单个值,例如:value时,直接把值绑定给value就可以。
代码:
页面代码:

<el-select v-model="value" placeholder="请选择" @change="getItem(value,'radio')">
	<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
	</el-option>
</el-select>

js:

<script>
  export default {
    data() {
      return {
        options: [{
          value: '选项1',
          label: '黄金糕'
        }, {
          value: '选项2',
          label: '双皮奶'
        }, {
          value: '选项3',
          label: '蚵仔煎'
        }, {
          value: '选项4',
          label: '龙须面'
        }, {
          value: '选项5',
          label: '北京烤鸭'
        }],
        value: '选项1'
      }
    },
    methods:{
      getItem(obj, type) {
		console.log(obj);
		console.log(type);
	  },
    }
  }
</script>

以上代码只是最简单的实现方式,但是项目中往往会遇到下拉选中的数据需要的不止其一个属性,这时候需要拿到整个对象才能实现。

绑定值为对象:
添加value-key作为唯一性标识,把value绑定的值改为整个对象。
思路:绑定单个属性时,设置默认值可以在options(下拉框数据集合)值为空的情况下实现,但是绑定值为对象,如果需要在不请求接口获取下拉集合的情况下设置默认值的话,则无法正常显示,此时只需要把已获取的默认值整合为一个对象放在options的集合内即可实现对象的默认值,在点击下拉框时再请求接口数据进行下拉框数据集合的重新赋值,具体实现如下所示:

<el-select v-model="value1" placeholder="请选择" value-key="value" @change="getItem(value1,'checkbox')">
	<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item">
	</el-option>
</el-select>
<script>
  export default {
    data() {
      return {
        options: [{
          value: '选项1',
          label: '黄金糕'
        }],
		value1: {
			value: '选项1',
			label: '黄金糕'
		}
      }
    },
    methods:{
      getItem(obj, type) {
		console.log(obj);
		console.log(type);
	  },
    }
  }
</script>
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
引用\[1\]和\[2\]中提到了使用this.$forceUpdate()来重新渲染el-select组件。这个方法可以在数据赋值后手动调用,强制组件重新渲染。在el-select组件上添加key属性,将其绑定到一个会动态变化的值上,比如后端返回的数据集合的长度,也可以解决样式不一致的问题。所以,如果在element-ui中使用el-select绑定函数出现样式问题,可以尝试使用this.$forceUpdate()方法重新渲染组件,并在el-select上添加key属性绑定一个动态变化的值。 #### 引用[.reference_title] - *1* [element-ui 解决 el-select 设置默认值后无法切换选项](https://blog.csdn.net/weixin_44640323/article/details/122175514)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [element-ui 解决 el-select 设置初始默认值后切换选项无效问题](https://blog.csdn.net/sea9528/article/details/121403975)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [< element-UIel-select组件,下拉内容无法显示滚动条 >](https://blog.csdn.net/MrWen2395772383/article/details/126159719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值