亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Vue select 綁定動(dòng)態(tài)變量的實(shí)例講解

瀏覽:79日期:2022-11-14 13:43:51

概述

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

Code

<div v-for='(item, index) in tagAllDate' :key='index'> <el-form-item :label='item.name'> <el-select v-model='editData[’line_’ + index]' multiple placeholder='請(qǐng)選擇' 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是聲明的對(duì)象

editData:{},

由于我們需要進(jìn)行變量的動(dòng)態(tài)拼接,所以不能使用“對(duì)象.屬性”這種語(yǔ)法,使用中括號(hào)[]可以方便我們進(jìn)行屬性名的動(dòng)態(tài)拼接。因?yàn)閷傩悦⒉荒芴崆爸溃詄ditData中不能提前聲明變量。而這就是問(wèn)題的關(guān)鍵所在。

問(wèn)題

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

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

結(jié)論

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

解決方案

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 }) },

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

另一個(gè)問(wèn)題,

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

Vue select 綁定動(dòng)態(tài)變量的實(shí)例講解

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

做法

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

for(var a in this.editData){ console.log(a);}

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

for(var a in this.editData){ this.editData[a].forEach( (item, index) => { console.log(item) }); }

補(bǔ)充知識(shí):vue-element-admin使用常見(jiàn)問(wèn)題

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

Vue select 綁定動(dòng)態(tài)變量的實(shí)例講解

這個(gè)組件是基于vue-i18n因此,首先在項(xiàng)目中安裝i18n

npm install --save vue-i18n

然后main.js中引入

import i18n from ’./lang’ // Internationalization

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

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

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

以上這篇Vue select 綁定動(dòng)態(tài)變量的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 日本久久草 | 久久777国产线看观看精品卜 | 国产精品亚洲一区二区三区在线观看 | 欧美精品99毛片免费高清观看 | 国产在线日韩 | 欧洲性大片xxxxx久久久 | 欧美色片在线观看 | 成人国产一区二区三区精品 | 亚洲综合亚洲综合网成人 | 五月天久久婷婷 | 久草福利在线 | 在线观看成人免费 | 亚洲婷婷六月 | 久久有这有精品在线观看 | 91久久青青草原线免费 | 亚洲国产综合久久精品 | 成人毛片免费免费 | 韩国美女激情视频一区二区 | 黄色国产视频 | 欧美黄色录像 | 国语一级毛片私人影院 | 激情一区 | 欧美一级录像 | 精品国产一区二区三区在线 | 亚洲欧洲日韩综合 | 亚洲第一a | 久久精品免看国产 | 日韩国产毛片 | 亚洲六月婷婷 | 最近手机中文在线视频 | 中日韩国语视频在线观看 | 乱人xxx国语对白91 | 亚洲 欧美 在线观看 | 欧美成人免费午夜影视 | www.黄色com| 免费爱爱视频 | 同性男男黄h片在线播放免费 | 国产亚洲高清在线精品不卡 | 韩国日本美国免费毛片 | 久久久久久综合成人精品 | 日韩亚洲人成在线综合日本 |