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 window.open打开新窗口后无法再次打开该窗口问题的解决方法
Apr 12 Javascript
node.js实现逐行读取文件内容的代码
Jun 27 Javascript
如何使用AngularJs打造权限管理系统【简易型】
May 09 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
Sep 02 Javascript
用js写的一个路由(简单实例)
Sep 24 Javascript
js正则表达式注册页面表单验证
Oct 11 Javascript
vue-cli的webpack模板项目配置文件分析
Apr 01 Javascript
JS简单获得节点元素的方法示例
Feb 10 Javascript
vue升级之路之vue-router的使用教程
Aug 14 Javascript
layer.open的自适应及居中及子页面标题的修改方法
Sep 05 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
Sep 18 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
Aug 26 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
在线短消息收发的程序,不用数据库
2006/10/09 PHP
php基础知识:类与对象(2) 自动加载对象
2006/12/13 PHP
基于wordpress主题制作的具体实现步骤
2013/05/10 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
Mootools 1.2教程 类(一)
2009/09/15 Javascript
JS中判断null、undefined与NaN的方法
2014/03/26 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
bootstrap改变按钮加载状态
2014/12/01 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
vue将后台数据时间戳转换成日期格式
2019/07/31 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
小程序实现多个选项卡切换
2020/06/19 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
python批量修改文件后缀示例代码分享
2013/12/24 Python
python发送arp欺骗攻击代码分析
2014/01/16 Python
Android应用开发中Action bar编写的入门教程
2016/02/26 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
用C语言实现文件读写操作
2013/10/27 面试题
社区工作者思想汇报
2014/01/13 职场文书
个人党性剖析材料
2014/02/03 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书
Redis IP地址的绑定的实现
2021/05/08 Redis
Python 用户输入和while循环的操作
2021/05/23 Python