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 相关文章推荐
关于 byval 与 byref 的区别分析总结
Oct 08 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
Aug 02 Javascript
网页运行时提示对象不支持abigimage属性或方法
Aug 10 Javascript
JavaScript实现SHA-1加密算法的方法
Mar 11 Javascript
AngularJS基础教程之简单介绍
Sep 27 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
Dec 04 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
Dec 08 Javascript
CSS或者JS实现鼠标悬停显示另一元素
Jan 22 Javascript
js点击文本框弹出可选择的checkbox复选框
Feb 03 Javascript
基于JS实现EOS隐藏错误提示层代码
Apr 25 Javascript
ES6中Generator与异步操作实例分析
Mar 31 Javascript
vue 中的 render 函数作用详解
Feb 28 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连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
javascript 读取图片文件的大小
2009/06/25 Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
2010/06/19 Javascript
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
javascript中onmouse事件在div中失效问题的解决方法
2012/01/09 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
js通过iframe加载外部网页的实现代码
2015/04/05 Javascript
javascript实现简单的ajax封装示例
2016/12/28 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
taro开发微信小程序的实践
2019/05/21 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
用Python脚本生成Android SALT扰码的方法
2013/09/18 Python
php使用递归与迭代实现快速排序示例
2014/01/23 Python
在python中的socket模块使用代理实例
2014/05/29 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
Python匿名函数及应用示例
2019/04/09 Python
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
好的演讲稿开场白
2013/12/30 职场文书
条幅标语大全
2014/06/20 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
2014年营销工作总结
2014/11/22 职场文书
劳模事迹材料范文
2014/12/24 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
PHP 技巧 * SVG 保存为图片(分享图生成)
2021/04/02 PHP
java实现web实时消息推送的七种方案
2022/07/23 Java/Android