vant-ui组件调用Dialog弹窗异步关闭操作


Posted in Javascript onNovember 04, 2020

需求描述:

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

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

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

正确的解决方式一:

<van-dialog
   v-model="showDialog"
   title="提示"
   show-cancel-button
   :before-close="onBeforeClose"
   @confirm="handleConfirm"
  >
   <van-form ref="myform">
    <van-field
     v-model="attendanceName"
     name="name"
     label="名称"
     placeholder="请输入名称"
     :rules="[
      { required: true, message: '请填写名称' }
     ]"
    />
   </van-form>
  </van-dialog>

关键点,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 异步弹出框使用记录

vant-ui组件调用Dialog弹窗异步关闭操作

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

vant-ui组件调用Dialog弹窗异步关闭操作

这是人干的的事嘛。。。

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

vant-ui组件调用Dialog弹窗异步关闭操作

以上这篇vant-ui组件调用Dialog弹窗异步关闭操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript数组使用调用方法汇总
Dec 08 Javascript
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
Sep 19 Javascript
url参数中有+、空格、=、%、&amp;、#等特殊符号的问题解决
May 15 Javascript
ie7+背景透明文字不透明超级简单的实现方法
Jan 17 Javascript
浅谈JSON中stringify 函数、toJosn函数和parse函数
Jan 26 Javascript
JavaScript动态提示输入框输入字数的方法
Jul 27 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
Aug 20 Javascript
javascript实现九宫格相加数值相等
May 28 Javascript
总结在前端排序中遇到的问题
Jul 19 Javascript
Bootstrap如何激活导航状态
Mar 22 Javascript
jQuery实现可兼容IE6的滚动监听功能
Sep 20 jQuery
JS 基本概念详细介绍
Oct 16 Javascript
通过实例了解Render Props回调地狱解决方案
Nov 04 #Javascript
vant中的toast层级改变操作
Nov 04 #Javascript
vant中的toast轻提示实现代码
Nov 04 #Javascript
JavaScript快速调试的两个技巧
Nov 04 #Javascript
如何实现小程序与小程序之间的跳转
Nov 04 #Javascript
Vant 中的Toast设置全局的延迟时间操作
Nov 04 #Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
Nov 04 #Javascript
You might like
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
PHP中Session ID的实现原理实例分析
2019/08/17 PHP
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
对pandas处理json数据的方法详解
2019/02/08 Python
Python OpenCV图像指定区域裁剪的实现
2019/10/30 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
Python numpy矩阵处理运算工具用法汇总
2020/07/13 Python
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
英国领先的男装设计师服装独立零售商:Repertoire Fashion
2020/10/19 全球购物
写给爸爸的道歉信
2014/01/15 职场文书
房产转让协议书
2014/04/11 职场文书
任命书格式
2014/06/05 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
社区义诊通知
2015/04/24 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis