最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue?ElementUI在el-table中使用el-popover問題

 更新時(shí)間:2023年04月12日 22:18:06   作者:小聰聰  
這篇文章主要介紹了Vue?ElementUI在el-table中使用el-popover問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

ElementUI在el-table中使用el-popover

Vue ElementUI在el-table中使用el-popover,點(diǎn)擊嵌套內(nèi)容中的確定或取消來關(guān)閉el-popover。

<el-table-column width="100" align="center" label="操作">
? <template slot-scope="scope">
? ? <el-popover width="160" :ref="`popover-${scope.$index}`">
? ? ? <p>確定刪除該項(xiàng)嗎?</p>
? ? ? <div style="text-align: right; margin: 0">
? ? ? ? <el-button type="text" size="mini" @click="scope._self.$refs[`popover-${scope.$index}`].doClose()">
? ? ? ? ? 取消
? ? ? ? </el-button>
? ? ? ? <el-button type="danger" size="mini" >確定</el-button>
? ? ? </div>
? ? ? <el-button type="text" slot="reference">刪除</el-button>
? ? </el-popover>
? </template>
</el-table-column>

方法二

<el-table-column width="100" align="center" label="操作">
? <template slot-scope="scope">
? ? <el-popover width="160" :ref="`popover-${scope.$index}`">
? ? ? <p>確定刪除該項(xiàng)嗎?</p>
? ? ? <div style="text-align: right; margin: 0">
? ? ? ? <el-button type="text" size="mini" @click="handleClose(scope.$index)">
? ? ? ? ? 取消
? ? ? ? </el-button>
? ? ? ? <el-button type="danger" size="mini" >確定</el-button>
? ? ? </div>
? ? ? <el-button type="text" slot="reference">刪除</el-button>
? ? </el-popover>
? </template>
</el-table-column>

<script>
?...
? ?handleClose(index) {
? ? ?this.$refs[`popover-${index}`].doClose()
? ?}
?...
</script>

方法三

<div ref="closepopover">
<el-table-column ?label="操作">
?<template slot-scope="item">
? <el-popover
? ? placement="right"
? ? title="確定刪除?"
? ? width="200"
? ? v-model="item.row.visible"
? ? trigger="click">
? ? <div style="text-align: right; margin: 0">
? ? ? <el-button size="mini" type="text" @click="updateVisible()">取消</el-button>
? ? ? <el-button type="primary" size="mini" @click="updateVisible()">確定</el-button>
? ? </div>
? ? <el-button slot="reference">刪除</el-button>
? </el-popover>
</template >
</el-table-column>


//也可解決
updateVisible(){
? ? this.$refs.closepopover.click();
}

el-popover在el-table中會(huì)出現(xiàn)不顯示情況

Popover 的屬性與 Tooltip 很類似 都是彈出提示,一般情況下,如果是固定提示內(nèi)容的話,采取Tooltip 簡單了事。

接觸到一個(gè)需求,el-table其中一列,根據(jù)后端返回的數(shù)據(jù)不同展示不同的 btn,其中一個(gè)btn 需要鼠標(biāo)hover 的時(shí)候 獲取該行元素的 id(需要在hover的時(shí)候 通過調(diào)接口獲?。?,此時(shí)使用Tooltip就無法達(dá)到動(dòng)態(tài)顯示提示內(nèi)容的效果了。

Popover 在基于Tooltip 有@show事件,當(dāng)提示內(nèi)容hover的時(shí)候,可以觸發(fā)@show回調(diào),此時(shí)可以去請(qǐng)求后端接口獲取需要的數(shù)據(jù)。

問題: 在el-table-column 內(nèi) 使用el-popover 有時(shí)候會(huì)出現(xiàn)hover 不顯示提示框的情況

總所周知,el-table-column 代表的是 列,在其中寫 一個(gè)el-popover ,其相當(dāng)于 寫了N個(gè),(N取決于el-table 中 data 的 數(shù)組長度) table 常常 與 分頁 一起使用

以下屬于個(gè)人猜測,為了解釋給自己聽的

由于el-table data數(shù)據(jù)長度,遍歷出多個(gè) el-popover 而 el-popover 是根據(jù)條件row.staus === 1 判斷是否出現(xiàn)的 (其中el-popover 的一些熟悉 就不寫了)

<el-table-column >
?<template #default="{row}">
? <el-popover ....>
? ? <span>需要顯示的文本內(nèi)容</span>
? ? <div slot="reference" v-if="row.status === 1">查看內(nèi)容</div>
? </el-popover>
? <div v-if="row.status === 2">暫無內(nèi)容</div>
?</template>
</el-table-column>

此時(shí)可能會(huì)出現(xiàn)一種情況,第一頁table 有10條數(shù)據(jù), 其中第一條 和 第5條的row.status === 1 

第二頁 只有2條數(shù)據(jù),第一條row.status === 2 第二條 row.status === 2

bug 復(fù)現(xiàn): 當(dāng)我第一次進(jìn)入頁面, hover 第一頁的第一條數(shù)據(jù) 能夠正常顯示 <span>內(nèi)容,也能正常顯示第五條<span>內(nèi)容,

當(dāng)我切換到第二頁,由于第二頁只有兩條數(shù)據(jù),而且status === 2 所以 hover 是不會(huì)顯示數(shù)據(jù)的, 這個(gè)時(shí)候 我再切換到第一頁,再次hover 到第一條數(shù)據(jù)發(fā)現(xiàn),此時(shí)row.status === 1 的那條數(shù)據(jù)不再顯示<span>內(nèi)容了 然而 第一頁的 第五條數(shù)據(jù) row.status ===1 hover 還是能正常顯示<span>內(nèi)容

經(jīng)過上述操作,(個(gè)人覺得,沒有官方判斷)第一頁的第一條本應(yīng)該hover 展示<span>內(nèi)容的 卻沒有展示 是因?yàn)?可能復(fù)用了 第二頁第一條row.status === 2 的el-popover

為了防止 el-popover 復(fù)用,采取兩個(gè)方法 :

1. 給el-popover不同的ref

2. 將v-if 判斷同步移到 el-popover里

<el-table-column >
?<template #default="{row}">
? <el-popover v-if="row.status === 1" :ref="`node-${row.id}`">
? ? <span>需要顯示的文本內(nèi)容</span>
? ? <div slot="reference" v-if="row.status === 1">查看內(nèi)容</div>
? </el-popover>
? <div v-if="row.status === 2">暫無內(nèi)容</div>
?</template>
</el-table-column>

當(dāng) row.status !==1 時(shí) el-popover 自然而然就被銷毀了,也就不存在復(fù)用的情況,若出現(xiàn)第一頁 和 第二頁 都是row.status === 1 的情況,此時(shí) 由于ref 不同也不會(huì)復(fù)用  (下劃線內(nèi)容 為個(gè)人判斷)

經(jīng)過上述操作,大致能解決 el-popover 不顯示的問題 (由于個(gè)人對(duì)該組建理解不是很深刻,所以不敢打包票 百分百解決)

額外內(nèi)容:

通過查看el-popover 的源碼 發(fā)現(xiàn) 存在一些 element 組件options沒有 給出的一些方法,可以配合 ref 一起使用,能實(shí)現(xiàn)一些特殊功能的處理 。 通過 this.$refs['el-popover的ref'].方法()

通過查看源碼可以發(fā)現(xiàn),el-popover 中的methods 有以下幾個(gè)方法:

  • doShow() : 展示el-popover
  • doClose() : 關(guān)閉el-popover
  • doToToggle() : 取反  關(guān)閉則展示,展示則關(guān)閉

tips:

當(dāng)el-popover 內(nèi) 不寫 slot=“reference” 其中內(nèi)容是不會(huì)展示(div內(nèi)容)的 例如:

<el-popover>
?<div>沒有使用slot插槽</div>
</el-popover>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue-test-utils初使用詳解

    vue-test-utils初使用詳解

    這篇文章主要介紹了vue-test-utils初使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • vue3+ts+axios+pinia實(shí)現(xiàn)無感刷新方式

    vue3+ts+axios+pinia實(shí)現(xiàn)無感刷新方式

    這篇文章主要介紹了vue3+ts+axios+pinia實(shí)現(xiàn)無感刷新方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue中data改變后讓視圖同步更新的方法

    vue中data改變后讓視圖同步更新的方法

    這篇文章主要給大家介紹了關(guān)于vue中data改變后讓視圖同步更新的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • vxe-table?使用?vxe-upload?在表格中實(shí)現(xiàn)非常強(qiáng)大的粘貼上傳圖片和附件功能

    vxe-table?使用?vxe-upload?在表格中實(shí)現(xiàn)非常強(qiáng)大的粘貼上傳圖片和附件功能

    本文通過實(shí)例代碼介紹了vxe-table渲染器的強(qiáng)大功能,配合 vxe-upload 上傳,比如復(fù)制或者截圖一張圖片,通過粘貼方式快速粘貼到單元格中,能支持單張、多張、查看、預(yù)覽功能,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • Vue組件渲染與更新實(shí)現(xiàn)過程淺析

    Vue組件渲染與更新實(shí)現(xiàn)過程淺析

    這篇文章主要介紹了Vue組件渲染與更新實(shí)現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-03-03
  • vue2響應(yīng)式原理之Object.defineProperty()方法的使用

    vue2響應(yīng)式原理之Object.defineProperty()方法的使用

    這篇文章主要介紹了vue2響應(yīng)式原理之Object.defineProperty()方法的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue的props配置項(xiàng)詳解

    Vue的props配置項(xiàng)詳解

    這篇文章主要為大家詳細(xì)介紹了Vue的props配置項(xiàng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Vue中的components組件與props的使用解讀

    Vue中的components組件與props的使用解讀

    這篇文章主要介紹了Vue中的components組件與props的使用解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • vue?proxytable代理根路徑的同時(shí)增加其他代理方式

    vue?proxytable代理根路徑的同時(shí)增加其他代理方式

    這篇文章主要介紹了vue?proxytable代理根路徑的同時(shí)增加其他代理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue.js的兄弟組件傳值實(shí)現(xiàn)組件間互動(dòng)

    Vue.js的兄弟組件傳值實(shí)現(xiàn)組件間互動(dòng)

    在Vue.js中,組件是構(gòu)建用戶界面的基本單位,而兄弟組件傳值是組件間交互的重要組成部分,本文將探討兄弟組件傳值的方法和優(yōu)勢,并通過有趣的示例展示其強(qiáng)大的功能,需要的朋友可以參考下
    2025-03-03

最新評(píng)論

老河口市| 鹤峰县| 湄潭县| 伊宁县| 曲沃县| 巩义市| 那坡县| 陕西省| 京山县| 中牟县| 巴林右旗| 礼泉县| 临颍县| 宝坻区| 米泉市| 崇阳县| 固阳县| 雅安市| 桓台县| 五河县| 博乐市| 宁乡县| 油尖旺区| 犍为县| 瓦房店市| 化德县| 灵山县| 澳门| 建昌县| 咸阳市| 通许县| 伊吾县| 徐闻县| 大厂| 当涂县| 县级市| 廊坊市| 夏津县| 青海省| 陵川县| 沁阳市|