el-select通常v-model绑定一个form的表单属性,但是在给后台传值的时候,往往在选择了以后,不仅要传name也要传id,所以需要考虑其他办法。

原v-model绑定方法:选中的值绑定form.serviceTypeName,但无法获取id

<el-form-item label="项目分类" prop="serviceTypeName">
	<el-select v-model="form.serviceTypeName" placeholder="请选择">
		<el-option
			v-for="item in classifiyOptions"
            :key="item.serviceTypeId"
            :label="item.serviceTypeName"
            :value="item.serviceTypeName"
         />
     </el-select>
</el-form-item>

改进方法:通过绑定index,@input绑定事件作用于多个值
改进后:

<el-form-item label="项目分类" prop="serviceTypeName">
	<el-select 
		v-model="form.serviceTypeName"
        @input="selectChangeParent"
        placeholder="请选择"
     >
     	<el-option
     		v-for="(item, index) in classifiyOptions"
            :key="index"
            :label="item.serviceTypeName"
            :value="index"
         />
    </el-select>
</el-form-item>

selectChangeParent方法:

// 新增绑定id函数
    selectChangeParent(index) {
      this.form.serviceType = this.classifiyOptions[index].serviceTypeId;
      this.form.serviceTypeName = this.classifiyOptions[index].serviceTypeName;
    },

这样就实现了select组件绑定多个值:id和name

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐