激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語言 - JavaScript - Vue select 綁定動態(tài)變量的實例講解

Vue select 綁定動態(tài)變量的實例講解

2021-11-03 16:48haonanElva JavaScript

這篇文章主要介紹了Vue select 綁定動態(tài)變量的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

概述

根據(jù)后臺的數(shù)據(jù)生成多個select,由于數(shù)據(jù)的數(shù)量不定,所以v-model綁定的變量名也不定。所以通過數(shù)據(jù)的id或者下標進行變量拼接。頁面能夠成功渲染,但是當進行下拉框的選值時,組件不刷新,選中的結(jié)果并沒有展示

Code

?
1
2
3
4
5
6
7
<div v-for="(item, index) in tagAllDate" :key="index">
    <el-form-item :label="item.name">
     <el-select v-model="editData['line_' + index]" multiple placeholder="請選擇" style="width: 100%;">
      <el-option v-for="(itemO, o) in item.sub_list" :key="o" :label="itemO.name" :value="itemO.tag_id"></el-option>
     </el-select>
    </el-form-item>
   </div>

editdata是聲明的對象

editData:{},

由于我們需要進行變量的動態(tài)拼接,所以不能使用“對象.屬性”這種語法,使用中括號[]可以方便我們進行屬性名的動態(tài)拼接。因為屬性名并不能提前知道,所以editData中不能提前聲明變量。而這就是問題的關(guān)鍵所在。

問題

由于v-model綁定的值沒有聲明,所以組件渲染后,當進行下拉選擇時,選項的值并沒有顯示在組件中。但是輸出結(jié)果時,值已經(jīng)被選中了。也就是說,能夠選到值,但頁面上組件無響應(yīng)。

如果假定我們拼接的id為[1,2,3] ,所以變量名為line_1, line_2, line_3 。在editData中依次聲明這些變量后,組件顯示正常。

結(jié)論

el-select組件需要綁定明確的變量,如果變量沒有提前聲明,則組件選擇時界面將會無響應(yīng)。

解決方案

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
tagAll() {
    this.loading = true;
    tagAll().then(response => {
     if(response.ret == 0) {
      response.data.forEach( (item, index)=>{
        this.$set(this.editData, "line_" + index, [])
      });
      this.tagAllDate = response.data;
     } else {
      this.$message.error(response.res_info);
     }
     this.loading = false
    })
   },

按照官方說明,在初始化的時候,會生成屬性的getter、setter。通過setter函數(shù)的調(diào)用,從而觸發(fā)組件更新。而直接賦值,并沒有setter函數(shù)的觸發(fā)。

另一個問題,

editData是動態(tài)的,里面的 line_ 也是動態(tài)的,如何去獲取這些信息呢

Vue select 綁定動態(tài)變量的實例講解

對象是editDate。但是里面的line_0 是動態(tài)創(chuàng)建的,就是說,editDate里面有多少的數(shù)據(jù)不知道,可能是:line_0 line_1 line_2 然后這些每一個都是數(shù)組,現(xiàn)在要拿到這些所有的數(shù)組里面的數(shù)據(jù)。

做法

首先循環(huán)這個對象拿到所有的Key的值,就是 line_0 line_1 這些key

?
1
2
3
for(var a in this.editData){
 console.log(a);
}

拿到key之后便可以直接根據(jù)動態(tài)的key拿到數(shù)組循環(huán)拿相應(yīng)的值

?
1
2
3
4
5
for(var a in this.editData){
     this.editData[a].forEach( (item, index) => {
      console.log(item)
     });
    }

補充知識:vue-element-admin使用常見問題

一、vue-element-admin添加快捷導(dǎo)航

Vue select 綁定動態(tài)變量的實例講解

這個組件是基于vue-i18n因此,首先在項目中安裝i18n

npm install --save vue-i18n

然后main.js中引入

import i18n from './lang' // Internationalization

然后注意src下邊lang文件夾的引入。之后在layout文件夾中,添加組件:tags-view 就可以了。

二、去掉Mock使用真實數(shù)據(jù)。

main.js中找到,mock的引入直接注釋掉,就好了。所有的接口請求都在 api 下邊

以上這篇Vue select 綁定動態(tài)變量的實例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://www.cnblogs.com/haonanZhang/p/11185725.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩视频一区二区三区在线观看 | 蜜桃91麻豆| 亚洲最新色 | 国产亚洲精品久久 | 精品一区二区久久久久久按摩 | 久久99国产综合精品 | 国产一区二区三区四区在线 | 国产色爱综合网 | 新久草视频| 免费久久久 | 中文字幕精品在线播放 | 日韩视频一区二区在线观看 | 91真视频 | 国产精品伊人久久 | 黄色免费视频网站 | 特级西西444www大精品视频免费看 | 国产91一区二区三区 | 午夜小视频免费观看 | 国产免费传媒av片在线 | 曰本三级日本三级日本三级 | 欧美一级黄色片免费观看 | 成人资源在线观看 | 亚洲国产精品久久久久制服红楼梦 | 污黄视频在线播放 | 一区二区高清视频在线观看 | 做爰裸体激情2 | 91av久久| 久久另类视频 | 看免费毛片 | 免费观看高清视频网站 | 看免费5xxaaa毛片 | 亚洲成人福利网站 | 国产羞羞视频在线观看 | 国产精品视频二区不卡 | 欧美性生活视频免费 | 27xxoo无遮挡动态视频 | 91麻豆精品国产91久久久更新资源速度超快 | 大学生一级毛片在线视频 | 黄色羞羞 | 欧美日韩亚洲国产 | 亚洲国产一区二区三区 |