中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Vue select 如何綁定動態變量

發布時間:2020-10-26 15:46:09 來源:億速云 閱讀:436 作者:Leah 欄目:開發技術

本篇文章為大家展示了使用Vue select 如何綁定動態變量,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

概述

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

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="請選擇" >
      <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:{},

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

問題

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

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

結論

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

解決方案

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函數的調用,從而觸發組件更新。而直接賦值,并沒有setter函數的觸發。

另一個問題,

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

使用Vue select 如何綁定動態變量

對象是editDate。但是里面的line_0 是動態創建的,就是說,editDate里面有多少的數據不知道,可能是:line_0 line_1 line_2 然后這些每一個都是數組,現在要拿到這些所有的數組里面的數據。

做法

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

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

拿到key之后便可以直接根據動態的key拿到數組循環拿相應的值

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

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

一、vue-element-admin添加快捷導航

使用Vue select 如何綁定動態變量

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

npm install --save vue-i18n

然后main.js中引入

import i18n from './lang' // Internationalization

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

二、去掉Mock使用真實數據。

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

上述內容就是使用Vue select 如何綁定動態變量,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

斗六市| 南木林县| 江口县| 阜宁县| 宁阳县| 梓潼县| 商水县| 当阳市| 克山县| 房产| 婺源县| 汨罗市| 望江县| 怀化市| 新晃| 栾川县| 安西县| 崇义县| 蓝田县| 凤城市| 宜都市| 镇远县| 巴楚县| 高邑县| 六安市| 黄山市| 安远县| 山东省| 库伦旗| 武强县| 娱乐| 望谟县| 黄石市| 乐亭县| 兴文县| 凤凰县| 关岭| 汕尾市| 台南县| 长兴县| 织金县|