vue使用dialog关闭前调用_在vant-ui组件中如何调用Dialog实现异步关闭弹窗

本文详细介绍了在vant-ui组件中如何通过v-model、before-close和@confirm实现异步关闭弹窗。关键在于before-close回调中阻止关闭,并在表单验证及API调用成功的handleConfirm中手动关闭弹窗。
摘要由CSDN通过智能技术生成

在vant-ui组件中如何调用Dialog实现异步关闭弹窗

发布时间:2020-11-05 14:47:55

来源:亿速云

阅读:144

在vant-ui组件中如何调用Dialog实现异步关闭弹窗?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

需求描述:

需求描述:官方文档又是组件调用方式,又是函数调用方式。

我就需要一个很简单的:点击操作弹窗显示后,我填写一个表单,表单校验通过后,再调用API接口,返回成功后,关闭弹窗。

一个很简单的东西,element-ui用的很方便,在这里就懵比了,刚开始做的,弹窗关闭了,才返回异步接口调用的结果。网速慢点,用起来真的很不好。

正确的解决方式一:

v-model="showDialog"

title="提示"

show-cancel-button

:before-close="onBeforeClose"

@confirm="handleConfirm"

>

v-model="attendanceName"

name="name"

label="名称"

placeholder="请输入名称"

:rules="[

{ required: true, message: '请填写名称' }

]"

/>

关键点,showDialog控制显示隐藏,before-close控制关闭前的回调,confirm 是弹窗点击确认按钮触发的事件,ref拿到form实例。

刚开始我把表单校验放在before-close,实现的结果不对。

onBeforeClose(action, done) {

if (action === "confirm") {

return done(false);

} else {

// 重置表单校验

this.$refs["myform"].resetValidation("name");

this.name= undefined;

return done();

}

},

我把onBeforeClose中的,点击确认confirm的操作,done(false),阻止弹窗关闭

把表单校验和异步接口请求成功后关闭弹窗的,都放到handleConfirm操作中,

// 实例弹窗确认

handleConfirm() {

this.$refs["myform"]

.validate()

.then(() => {

let para = {

data: {

name: this.name,

},

};

ajaxAdd(para).then(() => {

this.showDialog = false; // 在这里手动的关闭弹窗

this.$toast.success("新增成功");

this.name= undefined;

this.onRefresh();

});

})

.catch(() => {});

},

这样修改后,点击取消,可以直接关闭。点击确认,需要先表单校验,校验成功后,才会去发送ajax异步请求,请求接口返回成功后,才会关闭弹窗。

补充知识:关于Vant dialog 异步弹出框使用记录

这个是官方文档,啥说明没有就有个解释

这是人干的的事嘛。。。

具体来说下怎么在vue中使用它

关于在vant-ui组件中如何调用Dialog实现异步关闭弹窗问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值