You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ant-design-vue/components/select/demo/label-in-value.vue

62 lines
1.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<docs>
---
order: 4
title:
zh-CN: 获得选项的文本
en-US: Get value of selected item
---
## zh-CN
默认情况下 `onChange` 里只能拿到 value如果需要拿到选中的节点文本 label可以使用 `labelInValue` 属性
选中项的 label 会被包装到 value 中传递给 `onChange` 等函数此时 value 是一个对象
## en-US
As a default behavior, the onChange callback can only get the value of the selected item. The labelInValue prop can be used to get the label property of the selected item.
The label of the selected item will be packed as an object for passing to the onChange callback.
</docs>
<template>
<a-select
v-model:value="value"
label-in-value
style="width: 120px"
:options="options"
@change="handleChange"
></a-select>
</template>
<script lang="ts">
import type { SelectProps } from 'ant-design-vue';
import { defineComponent, ref } from 'vue';
interface Value {
value?: string;
label?: string;
}
export default defineComponent({
setup() {
const options = ref<SelectProps['options']>([
{
value: 'jack',
label: 'Jack (100)',
},
{
value: 'lucy',
label: 'Lucy (101)',
},
]);
const handleChange = (value: Value) => {
console.log(value); // { key: "lucy", label: "Lucy (101)" }
};
return {
value: ref<Value>({ value: 'lucy' }),
options,
handleChange,
};
},
});
</script>