这篇文章主要介绍了VUE使用ElementUI下拉框@change事件数据不回显怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇VUE使用ElementUI下拉框@change事件数据不回显怎么解决文章都会有所收获,下面我们一起来看看吧。
使用ElementUI下拉框 @change事件数据不回显
问题
在VUE中使用ElementUI的el-select下拉框,它是通过接口异步获取的下拉框数据,选择某一个值后,虽然在绑定的 @change 事件中能够看到已赋值成功,控制台输出也显示赋值操作完成数据变化,但是框上却没有显示选中的值。
解决方案
VUE它是无法监听动态新增的属性的变化,但是有一个方法可以为动态属性赋值,那就是$set。
<template>
<el-select
v-model="value"
multiple
filterable
allow-create
default-first-option
placeholder="请选择文章标签">
@change="selectChange"
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</template>
<script>
export default {
data() {
return {
paper:[{
title:'',
author:''
}]
options: [{
value: '1',
label: 'HTML'
}, {
value: '2',
label: 'CSS'
}, {
value: '3',
label: 'JavaScript'
}],
value: []
}
},methods{
// 操作下拉框选中事件
selectChange(val) {
const title = this.options.find(item=>item.value===val).label
this.$set(this.paper, this.paper.title, title)
}
}
}
</script>
VUE下拉框数据及数据回显问题
下拉框默认显示第一个数据,及获取下拉框中选择的任意数据:
<label>类型:</label>
<select v-model="value_type" @change="getvalue_typeected(value_type)">
<option :value="item" v-for="item in types" :key="item">{{
item
}}</option>
</select>
export default {
data(){
return {
value_type: "",
types: ["STRING", "BOOLEAN", "INTEGER",'DATETIME','DATE'],
}
},
created(){
//下拉框默认显示第一个
this.value_type = this.types[0];
},
methods:{
getvalue_typeected(val) {
this.value_type = val;
},
}
}
下拉框数据回显:
getCurIdData() {
this.$http
.get(`/api/${id}`)
.delegateTo(api_request)
.then((data) => {
this.value_type= data.value_type;
});
}