在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 获取对象 定位子对象
May 31 Javascript
jquery中加载图片自适应大小主要实现代码
Aug 23 Javascript
JavaScript+canvas实现七色板效果实例
Feb 18 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
Dec 12 Javascript
jQuery实现最简单实用的分秒倒计时
Feb 05 Javascript
前端开发不得不知的10个最佳ES6特性
Aug 30 Javascript
javascript计算对象长度的方法
Oct 25 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
Dec 13 Javascript
vue中各种通信传值方式总结
Feb 14 Javascript
详解Vue项目中实现锚点定位
Apr 24 Javascript
VSCode搭建Vue项目的方法
Apr 30 Javascript
vue+AI智能机器人回复功能实现
Jul 16 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
PHP支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
控制PHP的输出:缓存并压缩动态页面
2013/06/11 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
基于php的CMS中展示文章类实例分析
2015/06/18 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
2018/09/26 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
Grid得到选择行数据的方法总结
2011/01/17 Javascript
treepanel动态加载数据实现代码
2012/12/15 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
nodejs之koa2请求示例(GET,POST)
2018/08/07 NodeJs
js实现每日签到功能
2018/11/29 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
python的Template使用指南
2014/09/11 Python
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
2017/03/19 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
python 负数取模运算实例
2020/06/03 Python
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
2014年终工作总结范本
2014/12/15 职场文书
婚礼庆典答谢词
2015/01/20 职场文书
教师廉政准则心得体会
2016/01/20 职场文书