element中el-select多选v-model是对象数组

news/2024/7/10 2:10:46 标签: 前端, javascript, vue, el-select, elementui

文章目录

  • 一、问题
  • 二、解决
  • 三、最后

一、问题

element中的el-selectv-model一般都是字符串或者字符串数组,但是有些时候后端接口要求该字段要传对象或者对象数组,如果再转换一次数据,对于保存配置和回显都是吃力不讨好的事情。如下所示:

vue"><template>
    <el-select
       multiple
       clearable
       filterable
       v-model="select"
    >
      <el-option
        v-for="item in options"
        :key="item.nodeId"
        :label="item.nodeName"
        :value="item.nodeId"
      />
    </el-select>
</template>
<script>
export default {
    data() {
        return {
            select: [],
            options: [
                {
                    "nodeId": "node_135061771075",
                    "nodeName": "审批人1"
                },
                {
                    "nodeId": "node_404274216403",
                    "nodeName": "审批人2"
                }
            ]
        }
    }
}
</script>

选中后的数据select为:

javascript">['node_135061771075', 'node_404274216403']

但是想实现的是select值为:

javascript">[
    {
        "nodeId": "node_135061771075",
        "nodeName": "审批人1"
    },
    {
        "nodeId": "node_404274216403",
        "nodeName": "审批人2"
    }
]

这时,如果把el-optionvalue改成item

<el-option
    v-for="item in options"
    :key="item.nodeId"
    :label="item.nodeName"
    :value="item"
/>

结果发现竟然会报错:

javascript"><transition-group> children must be keyed: <ElTag>

二、解决

指定el-selectvalue-key属性。官网的说法:如果 Select 的绑定值为对象类型,请务必指定 value-key 作为它的唯一性标识。点击【跳转】访问官网

<template>
    <el-select
       multiple
       clearable
       filterable
   	   value-key="nodeId"
       v-model="select"
    >
      <el-option
        v-for="item in options"
        :key="item.nodeId"
        :label="item.nodeName"
        :value="item"
      />
    </el-select>
</template>
<script>javascript">
export default {
    data() {
        return {
            select: [],
            options: [
                {
                    "nodeId": "node_135061771075",
                    "nodeName": "审批人1"
                },
                {
                    "nodeId": "node_404274216403",
                    "nodeName": "审批人2"
                }
            ]
        }
    }
}
</script>

el-select设置好value-key后,页面不会报错,而且数据也是返回如下正确格式:

javascript">[
    {
        "nodeId": "node_135061771075",
        "nodeName": "审批人1"
    },
    {
        "nodeId": "node_404274216403",
        "nodeName": "审批人2"
    }
]

三、最后

本人每篇文章都是一字一句码出来,希望大佬们多提提意见。顺手来个三连击,点赞👍收藏💖关注✨。打气,加油☕


http://www.niftyadmin.cn/n/5262501.html

相关文章

对于初学者来说,从哪些方面开始学习 Java 编程比较好?

对于初学者来说&#xff0c;从哪些方面开始学习 Java 编程比较好&#xff1f; 在开始前我有一些资料&#xff0c;是我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「Java的资料从专业入门到高级教程工具包」&#xff0c;点个关注&#xff0c;全…

Vue3-09-条件渲染-v-show 的基本使用

v-show 的作用 v-show 可以根据条件表达式的值【展示】或【隐藏】html 元素。v-show 的特点 v-show 的实现方式是 控制 dom 元素的 css的 display的属性&#xff0c; 因此&#xff0c;无论该元素是否展示&#xff0c;该元素都会正常渲染在页面上&#xff0c; 当v-show 的 条件…

代码随想录算法训练营第十六天 |104.二叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数

今天学习内容&#xff1a;104.二叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数 讲解&#xff1a;代码随想录 104.二叉树的最大深度 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 递归法 本题可以使用前序&#xff08;中左右…

【Android开发-25】Android中多线程编程用法介绍

1&#xff0c;线程基本用法 在Android中&#xff0c;线程的使用主要有两种方法&#xff1a;一种是扩展java.lang.Thread类&#xff0c;另一种是实现Runnable接口。 1.1以下是一个简单的Android线程继承Thread的用法示例&#xff1a; public class MyThread extends Thread {…

正则表达式(8):基本正则表达式小结

正则表达式&#xff08;8&#xff09;&#xff1a;基本正则表达式小结 本博文转载自 写这篇文章的目的就是总结前文中所介绍的”基本正则表达式”&#xff0c;并且结合一些实例进行练习&#xff0c;以便我们能够在练习中完全掌握它们。 首先&#xff0c;我们对前文中提到的符…

智能科技企业网站搭建的作用是什么

随着科学技术快速提升&#xff0c;各种智能产品随之而来&#xff0c;每个赛道里都涌入了大量企业商家&#xff0c;有些热门产品更是广受关注&#xff0c;对企业来说&#xff0c;形象、品牌、信息等方面需要完美呈现到用户眼前&#xff0c;而网站无疑是很好的工具。 企业通过【…

PyCharm 整合 Anaconda

PyCharm 整合 Anaconda Anaconda 是一个开源的Python发行版&#xff0c;它集成了许多常用的科学计算和数据分析工具。借助于 Anaconda &#xff0c;我们可以很方便地安装和管理 Python 包、创建和管理虚拟环境。Anaconda 包含了许多常用的 Python 库进行数据分析、机器学习和科…

UDP内网穿透和打洞原理与代码实现

1、众所周知&#xff0c;现在主流网络用的还是IPV4协议&#xff0c;理论上一共有2^3243亿个地址&#xff0c;除去私有网段、网络ID、广播ID、保留网段、本地环回127.0.0.0网段、组播224.0.0.0网段、实际可用就是36.47亿个&#xff1b;全球的服务器、PC机、手机、物联网设备等需…