el-checkbox-group?的v-model無法綁定對(duì)象數(shù)組的問題解決
elementUI官方文檔中el-checkbox-group組件綁定的都為一維數(shù)組,真實(shí)業(yè)務(wù)中數(shù)據(jù)綁定往往是多個(gè)鍵值對(duì)的對(duì)象數(shù)組,本文主要解決這個(gè)問題。
如下代碼:
<el-checkbox-group class="title-list" v-model="selTitles" @change='selchange' > <el-checkbox class="titles" v-for='(allItem, allItemIndex) in allTitles' :label="allItem" :key="allItem.value">{{allItem.lable}}</el-checkbox> </el-checkbox-group> data?()?{ ????return?{ ??????selTitles:?[{ ??????????value:?'sex', ??????????lable:?'性別' ????????},{ ??????????value:?'status', ??????????lable:?'檢查狀態(tài)' ????????},],?//?已選擇列 ??????allTitles:?[ ????????{ ??????????value:?'status', ??????????lable:?'檢查狀態(tài)' ????????}, ????????{ ??????????value:?'name', ??????????lable:?'姓名', ????????}, ????????{ ??????????value:?'sex', ??????????lable:?'性別' ????????}, ????????{ ??????????value:?'age', ??????????lable:?'年齡' ????????} ??????],?//?全部列 ????}; ??}
直接將el-checkbox的lable屬性綁定為數(shù)組的每一項(xiàng)元素,在chang事件selchange中就能獲取到被選中項(xiàng)目的全信息,包括value、label,此時(shí)會(huì)發(fā)現(xiàn)設(shè)置初始選中選項(xiàng)會(huì)設(shè)置不上,并且初始設(shè)入selTitles中的選項(xiàng),頁面顯示并未選中,但勾選時(shí)第一次勾選不上,第二次才能勾選上,由此現(xiàn)象認(rèn)為可能是elementui的bug,或者說人組件庫(kù)壓根就不支持el-checkbox-group組件綁定的對(duì)象數(shù)組,但每次選擇項(xiàng)目改變還需要轉(zhuǎn)換下數(shù)據(jù)實(shí)在是腦殼疼,所有就想著直接改組件庫(kù)底層代碼豈不快哉!
初始設(shè)入selTitles中的選項(xiàng),勾選時(shí)第一次勾選不上,第二次才能勾選上,猜想可能數(shù)據(jù)已經(jīng)設(shè)入被選項(xiàng)了,只是頁面未顯示選中,審查元素發(fā)現(xiàn)有個(gè)is-checked控制頁面顯示選中,于是捋到了源碼中的如下代碼:
更改步驟
1、從github上獲取elementUI源碼,安裝依賴,
2、將上圖兩個(gè)組件(packages\checkbox\src\目錄中)中畫紅框代碼換為如下代碼即可
return this.model.indexOf(this.label) > -1 || JSON.stringify(this.model).indexOf(JSON.stringify(this.label)) > -1;
3、運(yùn)行命令:npm run dist,將生成的lib包替換項(xiàng)目node-module的elementui 文件夾中的lib
到此這篇關(guān)于解決el-checkbox-group 的v-model無法綁定對(duì)象數(shù)組的文章就介紹到這了,更多相關(guān)解決el-checkbox-group 的v-model無法綁定對(duì)象數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue項(xiàng)目打包成Docker鏡像包的簡(jiǎn)單步驟
最近做時(shí)速云項(xiàng)目部署,需要將前端項(xiàng)目打成鏡像文件,下面這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目打包成Docker鏡像包的簡(jiǎn)單步驟,需要的朋友可以參考下2023-10-10詳解Vue如何進(jìn)行表單聯(lián)動(dòng)與級(jí)聯(lián)選擇
表單聯(lián)動(dòng)和級(jí)聯(lián)選擇是Vue.js中常見的功能,在下面的文章中,我們將討論如何在Vue.js中實(shí)現(xiàn)表單聯(lián)動(dòng)和級(jí)聯(lián)選擇,感興趣的小伙伴可以了解一下2023-06-06如何使用vue-pdf-embed實(shí)現(xiàn)PDF在線預(yù)覽
vue-pdf-embed是一個(gè)基于Vue.js的插件,專門用于在Vue應(yīng)用中嵌入和展示PDF文件,本文將使用vue-pdf-embed實(shí)現(xiàn)PDF在線預(yù)覽功能,有需要的小伙伴可以參考一下2025-03-03vue.js 打包時(shí)出現(xiàn)空白頁和路徑錯(cuò)誤問題及解決方法
這篇文章主要介紹了vue.js 打包時(shí)出現(xiàn)空白頁和路徑錯(cuò)誤問題及解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06解決vue的變量在settimeout內(nèi)部效果失效的問題
今天小編就為大家分享一篇解決vue的變量在settimeout內(nèi)部效果失效的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08Vue使用自定義指令實(shí)現(xiàn)拖拽行為實(shí)例分析
這篇文章主要介紹了Vue使用自定義指令實(shí)現(xiàn)拖拽行為,結(jié)合實(shí)例形式分析了Vue使用自定義指令實(shí)現(xiàn)拖拽行為具體步驟、原理與操作注意事項(xiàng),需要的朋友可以參考下2020-06-06詳解vue2.0+vue-video-player實(shí)現(xiàn)hls播放全過程
這篇文章主要介紹了詳解vue2.0+vue-video-player實(shí)現(xiàn)hls播放全過程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03Vue3的provide和inject實(shí)現(xiàn)多級(jí)傳遞的原理解析
Vue3中的provide和inject函數(shù)通過原型鏈實(shí)現(xiàn)數(shù)據(jù)的多級(jí)傳遞,父組件使用provide注入數(shù)據(jù),子組件和后代組件通過inject獲取這些數(shù)據(jù),在創(chuàng)建組件實(shí)例時(shí),子組件會(huì)繼承父組件的provides屬性對(duì)象,介紹Vue3的provide和inject實(shí)現(xiàn)多級(jí)傳遞的原理,需要的朋友可以參考下2024-12-12