62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Vue
		
	
	
| <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>
 |