element-ui—dialog使用過程中的坑


場景一:我們將dialog寫成一個可復用的公共組件用於顯示不同內容(如表格操作中的修改或添加的彈窗),之后發現dialog的遮罩將彈出層(點擊修改或添加后理應由一個彈窗顯示出來)都蓋住了,而我想要的效果是遮罩只遮住舊的窗口,而當前窗口應該完全顯示;

(注:表格是使用easyui的panel和window來包裹的,dialog才是使用的element-ui中的組件)

百度了一圈最后的解決方案是在el-dialog上加入以下屬性:

 

:modal-append-to-body="false"

意為:遮罩層是否插入至 body 元素上,若為 false,則遮罩層會插入至 Dialog 的父元素上

 

場景二: 同一個 項目中,dialog用於密碼修改,且不引用上面的公共組件,直接使用<el-dialog></dialog>標簽包裹一個form表單。結果表現是這樣的:單獨點擊密碼修改打開彈框沒問題,但是若先打開一個table-window窗口后再點擊密碼修改按鈕打開彈框,會發現此時的彈框會直接被

table-window遮蓋,表面上看似層級不夠的原因造成的,但是看了css樣式並非如此,或者直接給dialog添加比bable高的層級,一樣無濟於事。

解決辦法如下:在el-dialog上加入以下屬性

:append-to-body="true" 
意為:Dialog 自身是否插入至 body 元素上。嵌套的 Dialog 必須指定該屬性並賦值為 true。(官方的解釋:到現在我也沒整明白這句話的意思!)

  博客上看到意為博友的解釋是這樣的:因為有時候會存在頁面某些元素沒有被 modal 蓋上的情況,其實這種情況出現的原因就是你的dialog 是放在當前組件中的,如果放body 下則不會有這些情況!雖然也是似懂非懂,但是起碼問題解決了,這就夠了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM