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 相关文章推荐
onpropertypchange
Jul 01 Javascript
jquery 图片截取工具jquery.imagecropper.js
Apr 09 Javascript
js操作iframe的一些方法介绍
Jun 25 Javascript
利用毫秒减值计算时长的js代码
Sep 22 Javascript
javascript 实现 原路返回
Jan 21 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
Feb 08 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
Apr 22 Javascript
jquery学习笔记之无new构建详解
Dec 07 jQuery
通过vue-cli来学习修改Webpack多环境配置和发布问题
Dec 22 Javascript
原生js添加一个或多个类名的方法分析
Jul 30 Javascript
vue data引入本地图片的两种方式小结
Nov 13 Javascript
JavaScript实现捕获鼠标坐标
Apr 12 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
ThinkPHP模板引擎之导入资源文件方法详解
2014/06/18 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
Jquery使用小技巧汇总
2015/12/29 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
2018/10/26 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
[01:28:43]2014 DOTA2华西杯精英邀请赛5 24 DK VS CIS
2014/05/25 DOTA
python处理json数据中的中文
2014/03/06 Python
Python3基础之条件与循环控制实例解析
2014/08/13 Python
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
python爬取微信公众号文章
2018/08/31 Python
pytorch 共享参数的示例
2019/08/17 Python
Python字符串格式化输出代码实例
2019/11/22 Python
python实现查找所有程序的安装信息
2020/02/18 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
2020/12/10 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
美国鞋类购物网站:Shiekh Shoes
2016/08/21 全球购物
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
质检部部长职责
2013/12/16 职场文书
政府门卫岗位职责
2014/04/29 职场文书
初中军训感言
2015/08/01 职场文书
大学体育课感想
2015/08/10 职场文书
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL
Python如何让字典保持有序排列
2022/04/29 Python