關(guān)于vue2使用element?UI中Descriptions組件的遍歷問題詳解
需求描述:
展示信息時(shí)其中部門區(qū)域是未知數(shù)量的,需要通過遍歷進(jìn)行展示。如下圖舉例,其中地址和備注是一一對(duì)應(yīng)關(guān)系,需遵循該樣式。
問題描述:
起初我在el-descriptions中直接使用v-for進(jìn)行遍歷地址和備注兩個(gè)el-descriptions-item,發(fā)現(xiàn)頁面毫無反應(yīng),不會(huì)渲染這部分。
<div v-for="item in arr" :key="item.id"> <el-descriptions-item> <template slot="label"> <i class="el-icon-location-outline" />地址 </template> {{item.city}} </el-descriptions-item> <el-descriptions-item> <template slot="label"> <i class="el-icon-tickets" />備注 </template> <el-tag size="small">{{item.remarks}}</el-tag> </el-descriptions-item> </div>
導(dǎo)致原因:
打開控制臺(tái)發(fā)現(xiàn),這個(gè)組件是將數(shù)據(jù)渲染成了一個(gè)表格形式,放在里面的div是沒有被識(shí)別出來。所以更不會(huì)遍歷渲染。
處理辦法:
使用template進(jìn)行包裹遍歷(注意:key要放在真實(shí)dom上)
<template v-for="(item,ind) in arr"> <el-descriptions-item :key="ind"> <template slot="label"> <i class="el-icon-location-outline" />地址 </template> {{item.city}} </el-descriptions-item> <el-descriptions-item :key="ind"> <template slot="label"> <i class="el-icon-tickets" />備注 </template> <el-tag size="small">{{item.remarks}}</el-tag> </el-descriptions-item> </template>
數(shù)據(jù): arr: [{ city: '蘇州', remarks: '學(xué)校' }, { city: '揚(yáng)州', remarks: '老家' }]
以下為其他思考解決方式(不推薦)
1. 處理數(shù)據(jù),不可以通過div遍歷但是可以在el-descriptions-item中遍歷自身。可以將傳過來的數(shù)組進(jìn)行拆分重新組裝,之后遍歷該數(shù)據(jù)。
例:[{city:'蘇州',remarks:'學(xué)校'},{city:'揚(yáng)州',remarks:'老家'}] => ['蘇州','學(xué)校','揚(yáng)州','老家']
//遍歷展示 <el-descriptions-item v-for="(item,ind) in arr" :key="ind"> <template slot="label"> <i class="el-icon-location-outline" /> {{ind%2==0?'地址':'備注'}} </template> {{item}} </el-descriptions-item>
2. 拆分展示圖表。分成三部分,中間遍歷部分用div手寫樣式。(該樣式需要根據(jù)需求自行調(diào)整)
<div class="departList"> <div v-for="(item,ind) in jointDeparts" :key="ind" class="departItem"> <div class="depart"> <div class="left">地址</div> <div class="right">{{item.name}}</div> </div> <div class="type"> <div class="left">備注</div> <div class="right">{{item.type}}</div> </div> </div> </div>
.departList { margin: 5px 0; width: 98% !important; margin-left: 2% !important; border: 1px solid #ebeef5; .departItem { display: flex; div { display: flex; width: 50%; } .left { padding: 12px 10px; color: rgba(0, 0, 0, 0.85); border-right: 1px solid #e5e6eb; border-bottom: 1px solid #e5e6eb; background: #f2f3f5; width: 30.3%; font-size: 14px; } .right { padding: 12px 10px; color: #606266; border-bottom: 1px solid #e5e6eb; font-size: 14px; width: 70%; } .type { .left { border-left: 1px solid #e5e6eb; } } }
總結(jié)
到此這篇關(guān)于關(guān)于vue2使用element UI中Descriptions組件的遍歷問題詳解的文章就介紹到這了,更多相關(guān)element UI中Descriptions組件遍歷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
拖拽插件sortable.js實(shí)現(xiàn)el-table表格拖拽效果
本文主要介紹了拖拽插件sortable.js實(shí)現(xiàn)el-table表格拖拽效果,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02前端vue如何根據(jù)菜單自動(dòng)生成路由(動(dòng)態(tài)配置前端路由)
估計(jì)有不少人遇過這樣的需求:根據(jù)后臺(tái)數(shù)據(jù)動(dòng)態(tài)添加路由和菜單,這篇文章主要給大家介紹了關(guān)于前端vue如何根據(jù)菜單自動(dòng)生成路由的相關(guān)資料,需要的朋友可以參考下2024-04-04使用VUE+SpringBoot+EasyExcel?整合導(dǎo)入導(dǎo)出數(shù)據(jù)的教程詳解
這篇文章主要介紹了使用VUE+SpringBoot+EasyExcel?整合導(dǎo)入導(dǎo)出數(shù)據(jù)的過程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05Element-plus封裝搜索組件的實(shí)現(xiàn)
在后臺(tái)管理系統(tǒng)中,經(jīng)常需要在多個(gè)頁面中使用搜索功能,本文就來介紹一下Element-plus封裝搜索組件的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-08-08Vue集成three.js并加載glb、gltf、FBX、json模型的場(chǎng)景分析
這篇文章主要介紹了Vue集成three.js,并加載glb、gltf、FBX、json模型,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09vue關(guān)于接口請(qǐng)求數(shù)據(jù)過大導(dǎo)致瀏覽器崩潰的問題
這篇文章主要介紹了vue關(guān)于接口請(qǐng)求數(shù)據(jù)過大導(dǎo)致瀏覽器崩潰的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Vue偵測(cè)相關(guān)api的實(shí)現(xiàn)方法
這篇文章主要介紹了Vue偵測(cè)相關(guān)api,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05