select组件选中后获取当前值对应的对象信息

本文介绍在Vue中如何在select组件选中角色后,不仅在input框显示角色名,还能获取到对应用户对象信息。通过设置value-key属性绑定对象,并结合key属性确保唯一标识。另外,提到了一种替代方案,即不绑定对象,而是利用filter筛选实现相同功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求-----选中角色后,在input框中显示,同时需要获取该用户的基本信息对象

data () {
	return {
		receiveUser:{ },
		userList:[ ] 
	}
}

组件使用

        <el-select
          v-model="receiveUser"
          placeholder="请选择"
          clearable
          value-key="userId"
          @change="selectValue"
        >
          <el-option
            v-for="item in userList"
            :key="item.userId"
            :label="item.username"
            :value="item"
          ></el-option>
        </el-select>

select绑定对象,必须绑定 value-key属性,可以查看文档说明,不过说明上讲解的不详细,
userList是请求接口获取到的用户信息数组,value-key作为对象的唯一标识,是与:key="item.userId"对应的
最后可以查看打印结果

    //选中分配人后
    selectValue () {
      console.log(this.receiveUser) //选中人对象信息
    },

在这里插入图片描述

而select框中显示的角色名
在这里插入图片描述


2020-10-17
另一种解决思路—通过filter来筛选
select不需要绑定对象,而是通过遍历数组来筛选

data () {
	return {
		receiveUserName:' ',
		userList:[ ] 
	}
}
        <el-select
          v-model="receiveUserName"
          placeholder="请选择"
          clearable
          @change="selectValue"
        >
          <el-option
            v-for="item in userList"
            :key="item.userId"
            :label="item.username"
            :value="item.username"
          ></el-option>
        </el-select>
    selectValue () {
      let choosenItem = this.userList.filter(item => item.username=== this.receiveUserName)[0];
       console.log('choosenItem', choosenItem)
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值