我的父母有这个表格:
<template>
<b-form @submit="onSubmit">
<CountryDropdown/>
</b-form>
</template>
<script>
import ...
export default {
form: {
country: ''
}
}
</script>
这是我的下拉组件,使用vue-select
:
<template>
<v-select label="countryName" :options="countries" />
</template>
<script>
export default {
data() {
return {
countries: [
{ countryCode: 'EE', countryName: 'Estonia' },
{ countryCode: 'RU', countryName: 'Russia' }
]
}
}
}
</script>
我需要将countryCode
值传递给其父级的form.country
. 我尝试使用$emit
,但我似乎无法弄清楚在选择时它将如何设置父值,而不是在提交时。
编辑:
提交的解决方案效果很好,我将在此处添加我的解决方案:
我在 v-select 中添加了一个输入事件:
<v-select @input="setSelected" ... />
在我的脚本中,我定义了 selected 和 setSelected 方法:
data()
return
selected: ''
setSelected(value) {
this.selected = value.countryCode
this.$emit("selected", value.countryCode)
}
在父母中:
<CountryDropdown v-on:selected="getCountry />
和父脚本:
getCountry(country) {
this.form.country = country
}