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 相关文章推荐
用Greasemonkey 脚本收藏网站会员信息到本地
Oct 26 Javascript
javascript sudoku 数独智力游戏生成代码
Mar 27 Javascript
juqery 学习之三 选择器 可见性 元素属性
Nov 25 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
May 03 Javascript
jquery 缓存问题的几个解决方法
Nov 11 Javascript
使用three.js 画渐变的直线
Jun 05 Javascript
jQuery实现自动调用和触发某个事件的方法
Nov 18 Javascript
Angular企业级开发——MVC之控制器详解
Feb 20 Javascript
如何使用angularJs
May 08 Javascript
Easyui和zTree两种方式分别实现树形下拉框
Aug 04 Javascript
layui扩展上传组件模拟进度条的方法
Sep 23 Javascript
vue路由传参页面刷新参数丢失问题解决方案
Oct 08 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
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
省市二级联动小案例讲解
2016/07/24 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
微信小程序如何实现全局重新加载
2019/06/05 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
2020/01/20 Javascript
详解JavaScript数据类型和判断方法
2020/09/04 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
python 生成目录树及显示文件大小的代码
2009/07/23 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
numpy返回array中元素的index方法
2018/06/27 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
详解python多线程之间的同步(一)
2019/04/03 Python
Python跑循环时内存泄露的解决方法
2020/01/13 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
工程专业求职自荐书范文
2014/02/08 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
2016春节家属慰问信
2015/03/25 职场文书
大学同学聚会感言
2015/07/30 职场文书
mysql优化
2021/04/06 MySQL