如何解决vuejs:vue-select组件不更新值
我正在尝试将select b.*
from b
union all
select a.*
from a
where not exists (select 1 from b where b.a = a.a);
组件用于下拉列表。到目前为止,我已经写了。
vue-select
将按预期填充下拉列表,然后选择一个Item将其插入输入字段中。我遇到的两个问题是
- 选择某些内容后,
<template> <div> <v-select label="name" key="id" :v-model="selected" :reduce="data => data.id" :options="items" @input="update()" /> </div> </template> <script> export default { props: { initial: { type: [String,Number],default: 0,},api_call: { type: String,required: true,data(){ return { value: this.initial,items: [],} },computed: { selected: { get() { return this.value; },set(val) { return this.value = val; } },methods:{ update() { console.log('selected',this.selected,this.value); this.$emit('input',this.selected); },getData: function(){ axios.get('/api/' + this.api_call) .then(function (response) { this.items = response.data; }.bind(this)); },created(){ this.getData(); } }
和value
变量都不会改变。 - 我还传递了一个
selected
值,希望将其作为列表中的默认值。
解决方法
从:
指令中删除绑定符号v-model
<v-select label="name" key="id" v-model="selected" :reduce="data => data.id" :options="items" @input="update()" />
并像这样初始化value
:
data(vm){//vm refers to this
return {
value: vm.initial,items: [],}
},
或:
data(){
return {
value: null,mounted(){
this.value=this.initial
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。