Vue select 绑定动态变量的实例讲解


Posted in Javascript onOctober 22, 2020

概述

根据后台的数据生成多个select,由于数据的数量不定,所以v-model绑定的变量名也不定。所以通过数据的id或者下标进行变量拼接。页面能够成功渲染,但是当进行下拉框的选值时,组件不刷新,选中的结果并没有展示

Code

<div v-for="(item, index) in tagAllDate" :key="index">
    <el-form-item :label="item.name">
     <el-select v-model="editData['line_' + index]" multiple placeholder="请选择" style="width: 100%;">
      <el-option v-for="(itemO, o) in item.sub_list" :key="o" :label="itemO.name" :value="itemO.tag_id"></el-option>
     </el-select>
    </el-form-item>
   </div>

editdata是声明的对象

editData:{},

由于我们需要进行变量的动态拼接,所以不能使用“对象.属性”这种语法,使用中括号[]可以方便我们进行属性名的动态拼接。因为属性名并不能提前知道,所以editData中不能提前声明变量。而这就是问题的关键所在。

问题

由于v-model绑定的值没有声明,所以组件渲染后,当进行下拉选择时,选项的值并没有显示在组件中。但是输出结果时,值已经被选中了。也就是说,能够选到值,但页面上组件无响应。

如果假定我们拼接的id为[1,2,3] ,所以变量名为line_1, line_2, line_3 。在editData中依次声明这些变量后,组件显示正常。

结论

el-select组件需要绑定明确的变量,如果变量没有提前声明,则组件选择时界面将会无响应。

解决方案

tagAll() {
    this.loading = true;
    tagAll().then(response => {
     if(response.ret == 0) {
      response.data.forEach( (item, index)=>{
        this.$set(this.editData, "line_" + index, [])
      });
      this.tagAllDate = response.data;
     } else {
      this.$message.error(response.res_info);
     }
     this.loading = false
    })
   },

按照官方说明,在初始化的时候,会生成属性的getter、setter。通过setter函数的调用,从而触发组件更新。而直接赋值,并没有setter函数的触发。

另一个问题,

editData是动态的,里面的 line_ 也是动态的,如何去获取这些信息呢

Vue select 绑定动态变量的实例讲解

对象是editDate。但是里面的line_0 是动态创建的,就是说,editDate里面有多少的数据不知道,可能是:line_0 line_1 line_2 然后这些每一个都是数组,现在要拿到这些所有的数组里面的数据。

做法

首先循环这个对象拿到所有的Key的值,就是 line_0 line_1 这些key

for(var a in this.editData){
 console.log(a);
}

拿到key之后便可以直接根据动态的key拿到数组循环拿相应的值

for(var a in this.editData){
     this.editData[a].forEach( (item, index) => {
      console.log(item)
     });
    }

补充知识:vue-element-admin使用常见问题

一、vue-element-admin添加快捷导航

Vue select 绑定动态变量的实例讲解

这个组件是基于vue-i18n因此,首先在项目中安装i18n

npm install --save vue-i18n

然后main.js中引入

import i18n from './lang' // Internationalization

然后注意src下边lang文件夹的引入。之后在layout文件夹中,添加组件:tags-view 就可以了。

二、去掉Mock使用真实数据。

main.js中找到,mock的引入直接注释掉,就好了。所有的接口请求都在 api 下边

以上这篇Vue select 绑定动态变量的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 最常用的10个自定义函数[推荐]
Dec 26 Javascript
node.js中的buffer.copy方法使用说明
Dec 14 Javascript
JavaScript中this详解
Sep 01 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
Apr 13 Javascript
原生js简单实现放大镜特效
May 16 Javascript
Js实现京东无延迟菜单效果实例(demo)
Jun 02 Javascript
微信通过页面(H5)直接打开本地app的解决方法
Sep 09 Javascript
微信小程序实现星级评分和展示
Jul 05 Javascript
Vue.js实现表格渲染的方法
Sep 07 Javascript
在vue中解决提示警告 for循环报错的方法
Sep 28 Javascript
jQuery层叠选择器用法实例分析
Jun 28 jQuery
JavaScript undefined及null区别实例解析
Jul 21 Javascript
在Vue中使用Select选择器拼接label的操作
Oct 22 #Javascript
JavaScript 中判断变量是否为数字的示例代码
Oct 22 #Javascript
关于vue属性使用和不使用冒号的区别说明
Oct 22 #Javascript
jquery实现抽奖功能
Oct 22 #jQuery
Vue实现简单的留言板
Oct 23 #Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
Oct 22 #Javascript
JavaScript实现简易计算器小功能
Oct 22 #Javascript
You might like
PHP CURL使用详解
2019/03/21 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
DOM精简教程
2006/10/03 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
jQuery多级联动下拉插件chained用法示例
2016/08/20 Javascript
TypeScript入门-基本数据类型
2017/03/28 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
mui框架移动开发初体验详解
2017/10/11 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
2020/02/26 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
Python实现中一次读取多个值的方法
2018/04/22 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
2018/04/28 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
Python 求向量的余弦值操作
2021/03/04 Python
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
Linux机考试题
2015/07/17 面试题
网游商务专员求职信
2013/10/15 职场文书
实习生自我鉴定范文
2013/12/05 职场文书
工作人员思想汇报
2014/01/09 职场文书
服装行业创业计划书范文
2014/02/05 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL