解決在el-dialog中無法正確獲取DOM的問題
在el-dialog中無法正確獲取DOM
今天工作中有個需求是,在一個彈出框里放Echarts圖表。
眾所周知Vue里是在mounted生命周期里才能獲取到DOM,于是我理所應當?shù)模?/p>
mounted() {
let diameter= document.getElementById("diameter");
let diameterOption = {...};
echarts.init(diameter).setOption(diameterOption);
}
報錯,找不到DOM,無法生成echarts。但mounted里不應該發(fā)生這種情況的,所以只有一種可能性:那就是el-dialog和v-if一樣,采用默認不生成DOM的方式,只有在彈框出現(xiàn)時才會生成。
知道了問題所在,就好解決了:
// 彈框的觸發(fā)事件
showDialog() {
this.isDialogShow = true;
this.$nextTick(() => {
let diameter= document.getElementById("diameter");
let diameterOption = {...};
echarts.init(diameter).setOption(diameterOption);
})
}
注意一定要在控制dialog的布爾值變?yōu)?code>true后調(diào)用nextTick,這樣就能順利獲取到DOM啦~
關于在el-dialog中獲取DOM節(jié)點
場景
需求要求在el-dialog中獲取頁面中的DOM節(jié)點
問題
直接document.getElementById獲取的節(jié)點為undefined
解決
在獲取DOM節(jié)點代碼外層添加$nextTick()即可
代碼如下:

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
通過實例解析vuejs如何實現(xiàn)調(diào)試代碼
這篇文章主要介紹了通過實例解析vuejs如何實現(xiàn)調(diào)試代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07
vue本地打開build后生成的dist文件夾index.html問題
這篇文章主要介紹了vue本地打開build后生成的dist文件夾index.html問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧2019-09-09
vue-cli下的vuex的簡單Demo圖解(實現(xiàn)加1減1操作)
這篇文章主要介紹了vue-cli下的vuex的簡單Demo(實現(xiàn)加1減1操作),本文圖文并茂給大家介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下2018-02-02
vue實現(xiàn)前端保持篩選條件到url并進行同步參數(shù)設計
這篇文章主要為大家介紹了vue實現(xiàn)前端保持篩選條件到url并進行同步參數(shù)設計思路詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
vue單文件組件lint error自動fix與styleLint報錯自動fix詳解
這篇文章主要給大家介紹了關于vue單文件組件lint error自動fix與styleLint報錯自動fix的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-01-01

