当前位置: 首页 > 编程笔记 >

vant-ui组件调用Dialog弹窗异步关闭操作

卞轶
2023-03-14
本文向大家介绍vant-ui组件调用Dialog弹窗异步关闭操作,包括了vant-ui组件调用Dialog弹窗异步关闭操作的使用技巧和注意事项,需要的朋友参考一下

需求描述:

需求描述:官方文档又是组件调用方式,又是函数调用方式。

我就需要一个很简单的:点击操作弹窗显示后,我填写一个表单,表单校验通过后,再调用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 异步弹出框使用记录

这个是官方文档,啥说明没有就有个解释

这是人干的的事嘛。。。

具体来说下怎么在vue中使用它

以上这篇vant-ui组件调用Dialog弹窗异步关闭操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • main.js import Vue from "vue"; import { Dialog } from "feui"; window.Dialog = Dialog; 代码演示 消息提示 Dialog.alert({ title: title, skin: skin, message: "弹窗内容", confirmButtonText: "确实" }).th

  • 本文向大家介绍vant组件中 dialog的确认按钮的回调事件操作,包括了vant组件中 dialog的确认按钮的回调事件操作的使用技巧和注意事项,需要的朋友参考一下 不知道是不是我理解有问题,看了vant的组件库,他的文档是这样说的 然后我就绑定了事件 :confirm 结果他的触发机制是:加载页面时会触发,点击按钮打开模态框时会触发,点击确定会触发,点击取消也会触发。 经过查阅资料以后,可以绑

  • 半屏弹窗,辅助完成当前页面任务时;提醒用户并引导用户的下一步操作;用户主动发起的任务时。 示例代码如下: <div :class="['weui-demo-dialog', istrue ? 'weui-demo-dialog_show' : '']"> <div class="weui-mask" @click="closeDialog"></div> <div class="weui-

  • 本文向大家介绍微信小程序vant弹窗组件的实现方式,包括了微信小程序vant弹窗组件的实现方式的使用技巧和注意事项,需要的朋友参考一下 作为从事前端开发的你肯定见过不少的弹框组件,你可曾有想过要自己实现一个弹框组件库,又或者想完全定制化的使用各种标准UI框架中的弹框组件呢? 今天这篇文章将会带着你解析这一系列疑问,以vant-weapp组件库为例,从开发标准的弹窗组件使用到高度定制复合自我审美的弹

  • 请问有没有组件或者方法能实现类似的窗口? 尝试过使用element ui的Dialog 对话框但是效果不满意。

  • 问题内容: 我正在使用插件 在某些情况下,当对话框关闭时,我正在寻找刷新页面的方法。 有没有办法从对话框中捕获关闭事件? 我知道单击关闭按钮时可以运行代码,但这并不覆盖使用转义或右上角的x关闭的用户。 问题答案: 我找到了! 您可以使用以下代码捕获close事件: 显然,我可以将警报替换为需要执行的任何操作。 编辑: 从jQuery 1.7开始,bind()已成为on()