在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 相关文章推荐
jQuery UI 应用不同Theme的办法
Sep 12 Javascript
javaScript实现浮点数转十六进制字符
Oct 29 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
Jan 02 Javascript
express的中间件cookieParser详解
Dec 04 Javascript
js命名空间写法示例
Dec 18 Javascript
利用JS提交表单的几种方法和验证(必看篇)
Sep 17 Javascript
Angular2  NgModule 模块详解
Oct 19 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
Nov 07 Javascript
微信小程序 聊天室简单实现
Apr 19 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
Aug 10 Javascript
JavaScript实现的拼图算法分析
Feb 13 Javascript
微信小程序自定义头部导航栏(组件化)
Nov 15 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
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
PHP 日,周,月点击排行统计
2012/01/11 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
2014/08/08 PHP
微信利用PHP创建自定义菜单的方法
2016/08/01 PHP
php字符集转换
2017/01/23 PHP
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
2014/06/12 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
AngularJS的ng Http Request与response格式转换方法
2016/11/07 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
JS实现随机生成10个手机号的方法示例
2018/12/07 Javascript
详解VSCode配置启动Vue项目
2019/05/14 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
2019/11/20 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
2020/02/20 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
Python实现Logger打印功能的方法详解
2017/09/01 Python
PyQt5每天必学之弹出消息框
2018/04/19 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
PHP面试题大全
2015/10/16 面试题
大学生创业计划书的用途
2014/01/08 职场文书
初中班主任寄语
2014/04/04 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书