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 相关文章推荐
js前台判断开始时间是否小于结束时间
Feb 23 Javascript
JavaScript中“+”的陷阱深刻理解
Dec 04 Javascript
jQuery插件开发基础简单介绍
Jan 07 Javascript
js取得url地址参数实例
Feb 22 Javascript
浅谈JavaScript事件的属性列表
Mar 01 Javascript
浅谈实现vue2.0响应式的基本思路
Feb 13 Javascript
babel之配置文件.babelrc入门详解
Feb 22 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
Oct 24 Javascript
JavaScript实现单图片上传并预览功能
Sep 30 Javascript
jquery 遍历hash操作示例【基于ajax交互】
Oct 12 jQuery
javascript利用canvas实现鼠标拖拽功能
Jul 23 Javascript
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
Apr 06 Vue.js
通过实例了解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 高手之路(三)
2006/10/09 PHP
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
深入PHP数据缓存的使用说明
2013/05/10 PHP
php中http与https跨域共享session的解决方法
2014/12/20 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
跟我学习javascript的函数调用和构造函数调用
2015/11/16 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
Vue Element UI + OSS实现上传文件功能
2019/07/31 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
Python中实现结构相似的函数调用方法
2015/03/10 Python
Python函数返回值实例分析
2015/06/08 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
Python协程的用法和例子详解
2017/09/09 Python
Python3实现腾讯云OCR识别
2018/11/27 Python
WxPython实现无边框界面
2019/11/18 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
StringBuilder和String的区别
2015/05/18 面试题
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
心理咨询专业自荐信
2014/07/07 职场文书
乡镇干部个人整改措施思想汇报
2014/10/10 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android
python常见的占位符总结及用法
2021/07/02 Python
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python
攻略丨滑雪究竟该选哪款对讲机?
2022/02/18 无线电