翼度科技»论坛 编程开发 JavaScript 查看内容

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

6

主题

6

帖子

18

积分

新手上路

Rank: 1

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


问题

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

解决方案

VUE它是无法监听动态新增的属性的变化,但是有一个方法可以为动态属性赋值,那就是$set。
  1. <template>
  2.   <el-select
  3.     v-model="value"
  4.     multiple
  5.     filterable
  6.     allow-create
  7.     default-first-option
  8.     placeholder="请选择文章标签">
  9.     @change="selectChange"
  10.     <el-option
  11.       v-for="item in options"
  12.       :key="item.value"
  13.       :label="item.label"
  14.       :value="item.value">
  15.     </el-option>
  16.   </el-select>
  17. </template>
  18.  
  19. <script>
  20.   export default {
  21.     data() {
  22.       return {
  23.         paper:[{
  24.             title:'',
  25.             author:''
  26.         }]
  27.         options: [{
  28.           value: '1',
  29.           label: 'HTML'
  30.         }, {
  31.           value: '2',
  32.           label: 'CSS'
  33.         }, {
  34.           value: '3',
  35.           label: 'JavaScript'
  36.         }],
  37.         value: []
  38.       }
  39.     },methods{
  40.         // 操作下拉框选中事件
  41.         selectChange(val) {
  42.             const title = this.options.find(item=>item.value===val).label   
  43.             this.$set(this.paper, this.paper.title, title)    
  44.         }
  45.     }
  46.   }
  47. </script>
复制代码
VUE下拉框数据及数据回显问题

下拉框默认显示第一个数据,及获取下拉框中选择的任意数据:
  1. <label>类型:</label>
  2.  <select v-model="value_type" @change="getvalue_typeected(value_type)">
  3.    <option :value="item" v-for="item in types" :key="item">{{
  4.      item
  5.    }}</option>
  6.  </select>

  7. export default {
  8.     data(){
  9.         return {
  10.             value_type: "",
  11.               types: ["STRING", "BOOLEAN", "INTEGER",'DATETIME','DATE'],
  12.         }
  13.     },
  14.     created(){
  15.         //下拉框默认显示第一个
  16.         this.value_type = this.types[0];
  17.     },
  18.     methods:{
  19.         getvalue_typeected(val) {
  20.           this.value_type = val;
  21.         },
  22.     }
  23. }
复制代码
下拉框数据回显:
  1. getCurIdData() {
  2.   this.$http
  3.     .get(`/api/${id}`)
  4.     .delegateTo(api_request)
  5.     .then((data) => {
  6.       this.value_type= data.value_type;
  7.     });
  8. }
复制代码
总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/article/276259.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具