在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常用技巧收集整理篇
Nov 14 Javascript
node.js中的console.log方法使用说明
Dec 09 Javascript
在JavaScript中使用开平方根的sqrt()方法
Jun 15 Javascript
jQuery ajax时间差导致的变量赋值问题分析
Jan 22 Javascript
微信小程序实现多个按钮toggle功能的实例
Jun 13 Javascript
Vuex利用state保存新闻数据实例
Jun 28 Javascript
JS同步、异步、延迟加载的方法
May 05 Javascript
layui2.0使用table+laypage实现真分页
Jul 27 Javascript
详解将微信小程序接口Promise化并使用async函数
Aug 05 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
Aug 16 Javascript
小程序自定义圆形进度条
Nov 17 Javascript
vite+vue3.0+ts+element-plus快速搭建项目的实现
Jun 24 Vue.js
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/04/09 欧美动漫
解析strtr函数的效率问题
2013/06/26 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
javascript document.execCommand() 常用解析
2009/12/14 Javascript
innerHTML 和 getElementsByName 在IE下面的bug 的解决
2010/04/09 Javascript
jquery 选择器引擎sizzle浅析
2013/02/06 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
Javascript小技巧之生成html元素
2014/05/15 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
javascript编程实现栈的方法详解【经典数据结构】
2017/04/11 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
python实现比较文件内容异同
2018/06/22 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
python中自带的三个装饰器的实现
2019/11/08 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
Pytorch1.5.1版本安装的方法步骤
2020/12/31 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
浅谈css3中的前缀
2016/07/20 HTML / CSS
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
求职简历中自我评价
2014/01/28 职场文书
课外活动总结范文
2014/07/09 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
2014年度个人工作总结
2014/11/07 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
实习单位意见
2015/06/04 职场文书
保护环境建议书作文500字
2015/09/14 职场文书
高一作文之乐趣
2019/11/21 职场文书
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB