Ant Design Vue全局對(duì)話確認(rèn)框(confirm)的回調(diào)不觸發(fā)
Ant Design Vue全局對(duì)話確認(rèn)框的回調(diào)不觸發(fā)
我們先來(lái)看下官網(wǎng)給的案例和代碼。
<template> ? <a-button @click="showConfirm"> ? ? Confirm ? </a-button> </template> <script> export default { ? methods: { ? ? showConfirm() { ? ? ? this.$confirm({ ? ? ? ? title: 'Do you want to delete these items?', ? ? ? ? content: 'When clicked the OK button, this dialog will be closed after 1 second', ? ? ? ? onOk() { ? ? ? ? ? return new Promise((resolve, reject) => { ? ? ? ? ? ? setTimeout(Math.random() > 0.5 ? resolve : reject, 1000); ? ? ? ? ? }).catch(() => console.log('Oops errors!')); ? ? ? ? }, ? ? ? ? onCancel() {}, ? ? ? }); ? ? }, ? }, }; </script>
官網(wǎng)給了兩個(gè)回調(diào)一個(gè)是onOk 點(diǎn)擊確認(rèn)的回調(diào),還有一個(gè)是onCancel 是點(diǎn)擊取消的回調(diào)。
但是我們使用了 就會(huì)發(fā)現(xiàn)里面的一些使用到this指向不對(duì)。導(dǎo)致里面需要用到this的功能都失效。
解決辦法
只需要把這兩個(gè)回調(diào)(onOk、onCancel)改成箭頭函數(shù)即可。
代碼如下:
// 刪除 deleteItem (row) { this.$confirm({ title: '提示', content: '您是否確認(rèn)刪除該組織?', // 點(diǎn)擊確認(rèn)觸發(fā)的回調(diào) onOk: () => { // 這里模擬請(qǐng)求刪除的接口 setTimeout(() => this.$message.success('刪除成功!'), 1000) }, // 點(diǎn)取消觸發(fā)的回調(diào) onCancel: () => { this.$message.success('你已經(jīng)取消此操作!') } }) },
ant design confirm確認(rèn)框的應(yīng)用
用法如下:
this.$confirm({ // iconClass: 'el-icon-question', //自定義圖標(biāo)樣式 title: '提示', content: '賬戶名稱與企業(yè)名稱不一致,請(qǐng)確認(rèn)是否提交?', confirmButtonText: '確認(rèn)', //確認(rèn)按鈕文字更換 cancelButtonText: '取消', //取消按鈕文字更換 showClose: true, //是否顯示右上角關(guān)閉按鈕 type: 'warning', //提示類型 success/info/warning/error onOk:() => { this.doSave(_this.mdl) .then((res) => { if (res.success) { _this.$message.success('保存成功') _this.$emit('ok') } else { _this.$message.error(res.message) } }) .catch((err) => { console.error(err) }) .finally(() => { _this.confirmLoading = false _this.close() }) onCancel() { }, } })
需要注意的是onOk中調(diào)用vue的方法doSave,此時(shí)需要用箭頭函數(shù)寫(xiě)法,不然this指向出現(xiàn)問(wèn)題,調(diào)不到doSave。
- onOk為點(diǎn)擊‘’確認(rèn)‘’觸發(fā)的事件
- onCancel為點(diǎn)擊‘’取消‘’觸發(fā)的事件
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vuex數(shù)據(jù)持久化的兩種實(shí)現(xiàn)方案
在vuex的時(shí)候刷新以后里面存儲(chǔ)的state就會(huì)被瀏覽器釋放掉,因?yàn)槲覀兊膕tate都是存儲(chǔ)在內(nèi)存中的,所以一刷新頁(yè)面就會(huì)把state中的數(shù)據(jù)重置,這就涉及到vue數(shù)據(jù)持久化的問(wèn)題,這篇文章主要給大家介紹了關(guān)于vuex數(shù)據(jù)持久化的兩種實(shí)現(xiàn)方案,需要的朋友可以參考下2021-07-07如何使用vue實(shí)現(xiàn)跨域訪問(wèn)第三方http請(qǐng)求
這篇文章主要介紹了如何使用vue實(shí)現(xiàn)跨域訪問(wèn)第三方http請(qǐng)求,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03Vue 動(dòng)態(tài)路由的實(shí)現(xiàn)及 Springsecurity 按鈕級(jí)別的權(quán)限控制
這篇文章主要介紹了Vue 動(dòng)態(tài)路由的實(shí)現(xiàn)以及 Springsecurity 按鈕級(jí)別的權(quán)限控制的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09vue在響應(yīng)頭response中獲取自定義headers操作
這篇文章主要介紹了vue在響應(yīng)頭response中獲取自定義headers操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07Vuex unknown action type報(bào)錯(cuò)問(wèn)題及解決
這篇文章主要介紹了Vuex unknown action type報(bào)錯(cuò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02