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 指南/入门基础
Nov 30 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
Feb 12 Javascript
js锁屏解屏通过对$.ajax进行封装实现
Jul 31 Javascript
Javascript定义类(class)的三种方法详解
Mar 13 Javascript
莱鸟介绍javascript onclick事件
Jan 06 Javascript
jQuery属性选择器用法示例
Sep 09 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
Oct 08 Javascript
原生js实现电商侧边导航效果
Jan 19 Javascript
使用Vue组件实现一个简单弹窗效果
Apr 23 Javascript
vue router的基本使用和配置教程
Nov 05 Javascript
原生js滑动轮播封装
Jul 31 Javascript
关于vue中如何监听数组变化
Apr 28 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
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
2010/05/13 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
如何学习Javascript入门指导
2013/11/01 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
谈谈JavaScript异步函数发展历程
2015/09/29 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
jQuery选择器之属性筛选选择器用法详解
2017/09/19 jQuery
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
vue-cli脚手架的.babelrc文件用法说明
2020/09/11 Javascript
Python splitlines使用技巧
2008/09/06 Python
Python中文竖排显示的方法
2015/07/28 Python
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
Python简易版图书管理系统
2019/08/12 Python
没编程基础可以学python吗
2020/06/17 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
python3 re返回形式总结
2020/11/20 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
酒店管理毕业生自荐信
2013/10/24 职场文书
职业规划书如何设计?
2014/01/09 职场文书
中职毕业生自我鉴定范文(3篇)
2014/09/28 职场文书
参观邀请函范文
2015/02/02 职场文书
酒店厨房管理制度
2015/08/06 职场文书
利用Python多线程实现图片下载器
2022/03/25 Python
SpringBoot接入钉钉自定义机器人预警通知
2022/07/15 Java/Android