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的cookie插件
Apr 07 Javascript
javascript简单实现命名空间效果
Mar 06 Javascript
AngularJS进行性能调优的7个建议
Dec 28 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
May 28 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
May 31 Javascript
ES6中的rest参数与扩展运算符详解
Jul 18 Javascript
JavaScript的setter与getter方法
Nov 29 Javascript
vue webpack打包后图片路径错误的完美解决方法
Dec 07 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
Sep 25 Javascript
vue  elementUI 表单嵌套验证的实例代码
Nov 06 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
Mar 10 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
Aug 13 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
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
2017/01/10 Javascript
详解Vue2.0里过滤器容易踩到的坑
2017/06/01 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
2018/01/30 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
2018/07/31 jQuery
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
在Python中操作时间之mktime()方法的使用教程
2015/05/22 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
Python全排列操作实例分析
2018/07/24 Python
Python多继承原理与用法示例
2018/08/23 Python
将python图片转为二进制文本的实例
2019/01/24 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
Python request中文乱码问题解决方案
2020/09/17 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
什么是GWT的Entry Point
2013/08/16 面试题
在求职信中如何凸显个人优势
2013/10/30 职场文书
前台文员个人求职信范文
2014/01/05 职场文书
初中毕业生的自我评价
2014/03/03 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
怎样写观后感
2015/06/19 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL
Spring boot实现上传文件到本地服务器
2022/08/14 Java/Android