繁体   English   中英

如何使用 emit 将值传递给 v-model?

[英]How to pass value to v-model with emit?

我正在尝试将值从 select 字段传递给 v-model,但代码仅适用于 v-text-field。

 <script> export default { name: 'FormSelect', props: { modelValue: { type: [String, Number], default: '', }, label: { type: String, default: '', }, items: { type: Array, }, }, model: { prop: 'modelValue', event: 'change', }, }; </script>
 <template> <div> <v-select:label="label" v-bind:value="modelValue" @input.native="$emit('change', $event.target.value)":items="items" ></v-select> </div> </template>

 <template> <div class="form"> <v-flex xs10 sm8 md6 lg5> <v-card> <FormTitle /> <ModalFormMessage /> <v-form ref="form" class="d-flex flex-column"> <FormSelect v-model="vulnerabilities.vulnerability" label="Vulnerability":items="items.vulnerability" /> <FormInputs v-model="vulnerabilities.evidence" label="Eevidence" type="file" /> <FormInputs v-model="vulnerabilities.solution" label="Solution" type="text" /> <FormBtns /> </v-form> </v-card> </v-flex> </div> </template>

在 select 字段中没有返回选择的值,我怎样才能让值 I select 也传递给子组件中的 v-model?

您应该发出名称为input的事件:


@input="$emit('input', $event.target.value)"

我解决了它如下

 methods: { changeSelect: function () { this.$emit('input', this.modelValue); }, },
 <template> <div> <v-select:label="label" @input="changeSelect()" v-model="modelValue":items="items" ></v-select> <p>{{ modelValue }}</p> </div> </template>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM