[前端] VUE使用ElementUI下拉框 @change事件数据不回显问题

1918 0
王子 2023-2-25 10:50:38 | 显示全部楼层 |阅读模式
目录

    使用ElementUI下拉框 @change事件数据不回显
      问题解决方案
    VUE下拉框数据及数据回显问题总结


使用ElementUI下拉框 @change事件数据不回显


问题

在VUE中使用ElementUI的el-select下拉框,它是通过接口异步获取的下拉框数据,选择某一个值后,虽然在绑定的 @change 事件中能够看到已赋值成功,控制台输出也显示赋值操作完成数据变化,但是框上却没有显示选中的值。

解决方案

VUE它是无法监听动态新增的属性的变化,但是有一个方法可以为动态属性赋值,那就是$set。
<template>
<el-select
  v-model="value"
  multiple
  filterable
  allow-create
  default-first-option
  placeholder="请选择文章标签">
  @change="selectChnge"
  <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;
  });
}
总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持中国红客联盟。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行