vue element-ui的$notify注意點
阿新 • • 發佈:2019-02-04
我的初衷是把element-ui的$notify通知封裝成一個元件,登入成功後呼叫獲取低庫存介面,如果獲取介面的列表當中庫存大於0,則顯示這個通知,並且在文本當中提供點選事件。
因此,首先想到的就是使用dangerouslyUseHTMLString屬性,可以插入html字串
export default { methods: { open12() { this.$notify({ title: 'HTML 片段', dangerouslyUseHTMLString: true, message: '<strong>這是 <i id="show">HTML</i> 片段</strong>' }); } } }
但是,message裡面的html字串其實是脫離了vue,例如不能用@click方法繫結事件,因此,應該用js的操作dom來繫結。
首先,我想到的是在該元件的mounted方法裡面獲取
document.querySelector('#show');
但是這樣獲取到的是null,為什麼呢?
mounted的時候是該元件模板裡面的dom掛載完畢,然而我這個元件裡面並沒有模板,只在方法裡使用了this.$notify,掛載完後這個notify並不在app裡面,
role=“alert”就是該通知框,因此我們不能把它當做普通元件操作。而且,它的掛載時機有可能在該元件的mounted之後,就是mouted方法時只是該元件掛載了,但是裡面的這個motify可能還沒有,因此就是null。
如果要在裡面新增js方法如繫結事件,應該要在html裡面新增監聽,但是要掌握好時機。
我這裡還是不使用notify了,因為notify應該是偏向於文字展示的通知類,我這裡使用notify可能就會有點不妥。