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 相关文章推荐
用JQuery 实现的自定义对话框
Mar 24 Javascript
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
Dec 25 Javascript
JQuery读取XML文件数据并显示的实现代码
Dec 16 Javascript
CheckBoxList多选样式jquery、C#获取选择项
Sep 06 Javascript
JQuery实现鼠标移动到图片上显示边框效果
Jan 09 Javascript
jquery中交替点击事件的实现代码
Feb 14 Javascript
浏览器调试动态js脚本的方法(图解)
Jan 19 Javascript
浅谈VUE监听窗口变化事件的问题
Feb 24 Javascript
微信小程序实现页面浮动导航
Jan 28 Javascript
Vue 实现html中根据类型显示内容
Oct 28 Javascript
node.js如何操作MySQL数据库
Oct 29 Javascript
js实现类选择器和name属性选择器的示例步骤
Feb 07 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
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
让的PHP代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
PHP二维数组的去重问题解析
2011/07/17 PHP
php错误日志简单配置方法
2016/07/11 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
2016/05/24 Javascript
js实现华丽的九九乘法表效果
2017/03/29 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
2018/12/23 Javascript
vue实现点击隐藏与显示实例分享
2019/02/13 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
使用Python AIML搭建聊天机器人的方法示例
2018/07/09 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
如何实现Django Rest framework版本控制
2019/07/25 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
html5移动端自适应布局的实现
2020/04/15 HTML / CSS
手机配件第一品牌:ZAGG
2017/05/28 全球购物
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
办公室主任岗位职责
2013/11/08 职场文书
面试自我介绍演讲稿
2014/04/29 职场文书
行政诉讼答辩状
2015/05/21 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js