在Vue中使用Select选择器拼接label的操作


Posted in Javascript onOctober 22, 2020

我就废话不多说了,大家还是直接看代码吧~

<el-form-item label="货道商品" prop="productid">
          <el-select v-model="form.productid" filterable placeholder="请选择" @change="changeselect">
            <el-option v-for="item in myproducts"
                  :key="item.Id"
                  :label="`${item.Name}/${item.Brand}/${item.Type}/${item.Spec}`"
                  :value="item.Id">
            </el-option>
          </el-select>
        </el-form-item>

正常使用方法:

:label=“item.label”

多个字段拼接:

:label="${item.Name}/${item.Brand}/${item.Type}/${item.Spec}"

补充知识:element el-select 动态创建绑定属性,视图不更新之-连环填坑

项目需求是这样的:

1. 在 a组件通过操作页面,请求拿到需要的data,然后将数据存在vuex 中,数据结构为多层嵌套结构大概如下

ceshi:[
  {
   values:[
    {
     value:[
      {id:1,label:'哈哈1'},
      {id:2,label:'哈哈2'},
      {id:3,label:'哈哈3'}
     ]
    },
    {
     value:[
      {id:4,label:'哈哈4'},
      {id:5,label:'哈哈5'},
      {id:6,label:'哈哈6'}
     ]
    }
   ]
  }
 ]

在组件中通过获取vuex中的数据ceshi为数据源,

computed: {
  ...mapGetters(['ceshi'])
 },

然后在b组件中动态渲染数据,因为我需要动态绑定属性所以我在computed中创建动态变量结构

//数据渲染
  <div v-for="(x1,index1) in ceshi" :key="index1+'1'">
   <div v-for="(x2,index2) in x1.values" :key="index2+'2'">
     <el-select placeholder="请选择" v-model="form[index1].values[index2].value"> //动态绑定属性
      <el-option
       v-for="item in x2.value"
       :key="item.id"
       :label="item.label"
       :value="item.id">
      </el-option>
     </el-select>
   </div>
  </div>
//  

computed: {
  ...mapGetters(['ceshi']),  
   form(){   
    return this.ceshi.map((val,index) => {
     let values = val.values.map((val,index) => {
      let json={value:""}
      return json
     })
     let ojson = {values};
     return ojson
    })
   }  
 }

发现数据绑定成功,选择框变化数据也会变化,但是页面不改变,视图没有更新,通过在select代码中加入$set方法,也并没有用,视图同样没有更新;查看文档发现发现computer默认没有双向绑定 ,默认为getter 需要自己写setter函数,但是我发现,因为我的动态数据是我通过vuex 中的数据得来的,我也并没有定义其他的data,所以无法使用setter,于是进行修改如下

data() {
  return {
   form:[]
 },
created () {
   this.ceshi.forEach((val,index) => {
    let values = val.values.map((val,index) => {
     let json={value:""}
     return json
    })
    let ojson = {values};
    this.form.push(ojson)
   })  
 }

结果报错,分析原因应该是,我并没有在a组件操作获取数据,但这个时候created函数运行于是报错了,修改逻辑为通过watch 监听ceshi 数据变化

ceshi: {
   handler(newValue,oldValue) {
    this.ceshi.forEach((val,index) => {
      let values = val.values.map((val,index) => {
       let json={value:""}
       return json
      })
      let ojson = {values};
      this.form.push(ojson)
     })
   },
   deep: true
  }

再看效果,发现解决了,记录如下,希望能帮助到您!

以上这篇在Vue中使用Select选择器拼接label的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
分享XmlHttpRequest调用Webservice的一点心得
Jul 20 Javascript
JS前端框架关于重构的失败经验分享
Mar 17 Javascript
使用jquery修改表单的提交地址基本思路
Jun 04 Javascript
jQuery菜单插件用法实例
Jul 25 Javascript
javascript伸缩型菜单实现代码
Nov 16 Javascript
vue双向数据绑定原理探究(附demo)
Jan 17 Javascript
DOM事件探秘篇
Feb 15 Javascript
js canvas实现擦除效果示例代码
Apr 26 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
Dec 01 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
Mar 03 Javascript
Node.js实现一个HTTP服务器的方法示例
May 13 Javascript
Vue 实例事件简单示例
Sep 19 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
vue实现简单加法计算器
Oct 22 #Javascript
You might like
239军机修复记
2021/03/02 无线电
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
php实现 master-worker 守护多进程模式的实例代码
2019/07/20 PHP
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
angularjs 处理多个异步请求方法汇总
2015/01/06 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
基于Vue的移动端图片裁剪组件功能
2017/11/28 Javascript
详解Vue This$Store总结
2018/12/17 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
Node 代理访问的实现
2019/09/19 Javascript
vue element ui validate 主动触发错误提示操作
2020/09/21 Javascript
Vue路由权限控制解析
2020/11/09 Javascript
如何使用 vue-cli 创建模板项目
2020/11/19 Vue.js
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
Python多进程multiprocessing用法实例分析
2017/08/18 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
python 3.6.5 安装配置方法图文教程
2018/09/18 Python
python opencv摄像头的简单应用
2019/06/06 Python
python日志模块logbook使用方法
2019/09/19 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
Html5 FileReader实现即时上传图片功能实例代码
2014/09/01 HTML / CSS
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
给朋友的道歉信
2014/01/09 职场文书
2014年旅游局法制宣传日活动总结
2014/11/01 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
教师师德工作总结2015
2015/07/22 职场文书
小学感恩主题班会
2015/08/12 职场文书
2016春季运动会前导词
2015/11/25 职场文书