在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 相关文章推荐
Javascript的IE和Firefox兼容性汇编(zz)
Feb 02 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
Jan 16 Javascript
jquery仿京东侧边栏导航效果
Mar 02 Javascript
详解vue 模版组件的三种用法
Jul 21 Javascript
微信小程序实现图片上传、删除和预览功能的方法
Dec 18 Javascript
vue渲染时闪烁{{}}的问题及解决方法
Mar 28 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
Feb 18 jQuery
利用Webpack实现小程序多项目管理的方法
Feb 25 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
Mar 12 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
May 06 Javascript
Vue $emit()不能触发父组件方法的原因及解决
Jul 28 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
Sep 09 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 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
php使用curl简单抓取远程url的方法
2015/03/13 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
php统计数组不同元素的个数的实例方法
2019/09/26 PHP
jQuery 1.0.2
2006/10/11 Javascript
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
图片onload事件触发问题解决方法
2011/07/31 Javascript
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
JS函数的几种定义方式分析
2015/12/17 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
[02:01]大师之路——DOTA2完美大师赛11月论剑上海
2017/11/06 DOTA
Python的高级Git库 Gittle
2014/09/22 Python
python制作爬虫并将抓取结果保存到excel中
2016/04/06 Python
python中子类继承父类的__init__方法实例
2016/12/15 Python
tensorflow中next_batch的具体使用
2018/02/02 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
纪念建党演讲稿范文
2014/01/13 职场文书
个人收入证明模板
2014/09/18 职场文书
高中生个性发展自我评价
2015/03/09 职场文书
大学生求职意向书
2015/05/11 职场文书
教师节老师寄语
2015/05/28 职场文书