vue+el使用this.$confirm,不能阻断代码往下执行的解决
作者:老贼大魔王 发布时间:2024-05-29 22:43:42
标签:vue,el,this.$confirm,阻断代码
vue+el使用this.$confirm不能阻断代码往下执行
在vue+element ui的前端框架中使用el的confirm弹窗,遇到一个问题,就是连续多个弹窗提示一些信息,要是点击确定继续向下执行,点击取消就退出整个方法。
这时发现当代码执行到this.$confirm弹窗时,弹出弹窗后,继续执行了弹窗之后的代码,没有等到弹窗点击确定或是取消之后再执行。
具体解决
其实解决办法也很简单,因为this.$confirm也是一个promise方法,所以可以使用es6中的await等到返回结果。
await 表达式会暂停当前 async function 的执行,等待 Promise 处理完成。
......
if(await this.$confirm('是否保存修改?', '确认信息', {
? ?distinguishCancelAndClose: true,
? ?confirmButtonText: '保存',
? ?cancelButtonText: '取消'
?}).catch(() => {}) !== 'confirm') {
?? ?return
}
// 点击取消退出方法,点击保存则继续往下执行
// 若没有await,在弹出弹窗的同时就会接着往下执行
this.doSaveInfo()
......
后记
看官方文档学习一定要看仔细,看明白。认真学习promise和await。
使用this.$confirm换行显示提示信息
在写一个简单的按钮点击确认框信息的时候,发现换行不能用\n。用了< br>发现也是字符串的输出形式
去查了下发现需要使用$createElement来创建
这里我需要显示两行信息
代码如下
creatNew(){
?const h = this.$createElement
? ? ? ? this.$confirm('提示', {
? ? ? ? ? title: '提示',
? ? ? ? ? message: h('div', [
? ? ? ? ? ? h('p', '新建会导致之前设置失效'),
? ? ? ? ? ? h('p', '是否继续新建?')
? ? ? ? ? ]),
? ? ? ? ? confirmButtonText: '确定',
? ? ? ? ? cancelButtonText: '取消'
? ? ? ? }).then(() => {
? ? ? ? ....//调用新建方法
? ? ? ? }).catch(()=>({}))//不要忘记catch
? ? ? ? //最后可以.finally(()=>({}))
? ? ? ? }
解释
★h('div')就表示创建一个div标签,
★如果写成h('div',{class:'...'})就可以定义class,如:
?h('i', { class: 'el-icon-question' })
★如果写成下面的,则可以定义props。(以element的弹出框el-tooltip为例)
h('el-tooltip',{props:{
?? ??? ??? ??? ??? ?content: (function() {
? ? ? ? ? ? ? ? ? ?? ?return '弹出信息'
? ? ? ? ? ? ? ? ? ?? ?})(),
? ? ? ? ? ? ? ? ?? ?placement: 'top'
? ? ? ? ? ? ? ? ?? ?}})
★包含关系用h('div',[...]),如div中包含两个p标签:(可以继续嵌套)
h('div', [
? ? ? ? ? ? h('p', '第一个p'),
? ? ? ? ? ? h('p', '第二个p')
? ? ? ? ? ])
简单介绍到这里吧~
来源:https://blog.csdn.net/qq_36637705/article/details/103661216


猜你喜欢
- 1、Pinia是什么Pinia是一个vue的状态管理方案,是vuex团队成员开发,实现了很多vuex5的提案,更加地轻量化且有devtool
- Windows•安装lxml最好的安装方式是通过wheel文件来安装,http://www.lfd.uci.edu/~gohlke/pyth
- dictionary对象和数组有点相似,但无需用redim来改变dictionary的大小,dictionary也没有多维,dictiona
- 注:我指一个网站被第三方网站以iframe的形式调用时,被调用网站的禁止策略 和 调用网站的突破禁止策略,跟XSS麽关系,但跟clickja
- 需求是这样的,我在.net程序里操作数据时将一些字段数据加密了,这些数据是很多系统共用的,其中一delphi程序也需要用到,并且需要将数据解
- 前言这篇博文发布后,有朋友问有没有SQL server版本的,现在有了==》传送门一、场景再现在一个erp进销存系统或0A等其他系统中,如果
- 首先将一个字典转化为DataFrame,然后以DataFrame中的列进行频次统计。代码如下:import pandas as pda={&
- 效果知识点:css3画气球, 自定义属性运用,随机阵列, DOM元素操作,高级回调函数与参数复传,动态布局,鼠标事件,定时器运用,CSS3新
- 1、从Kmeans说起Kmeans是一个非常基础的聚类算法,使用了迭代的思想,关于其原理这里不说了。下面说一下如何在matlab中使用kme
- 在使用mysql运行某些语句时,会因数据量太大而导致死锁,没有反映。这个时候,就需要kill掉某个正在消耗资源的query语句即可,KILL
- 数据库服务器主要用于存储、查询、检索企业内部的信息,因此需要搭配专用的数据库系统,对服务器的兼容性、可靠性和稳定性等方面都有很高的要求。下面
- 如果你在学校读的是计算机科学专业,那么可能学过 Lambda 表达式, 不过可能从来没有用过它。如果你不是计算机科学专业,它们看着可能 有点
- 一、前言上次写了一个俄罗斯方块,感觉好像大家都看懂了,这次就更新一个植物大战僵尸吧二、引入模块import pygameimport ran
- 一、常见模型分类1.1、循环服务器模型循环接收客户端请求,处理请求。同一时刻只能处理一个请求,处理完毕后再处理下一个。优点:实现简单,占用资
- 引言在前面的文章当中我们讨论的是 python3 当中早期的内嵌数据结构字典的实现,在本篇文章当中主要介绍在后续对于字典的内存优化。字典优化
- CocosCreator版本:2.3.4cocos没有List组件,所以要自己写。从cocos的example项目中找到assets/cas
- 例如下面这段代码 { var temp = "12"; } alert(temp); //输出 12 如果按照通常的编程
- 因为编写了一个Python程序,密集的操作了一个Mysql库,之前数据量不大时,没发现很慢,后来越来越慢,以为只是数据量大了的原因,但是后来
- 这篇文章主要介绍了简单了解Python3 bytes和str类型的区别和联系,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
- 前言:并行编程比程序编程困难,除非正常编程需要创建大量数据,计算耗时太长,物理行为模拟困难例子:N体问题物理前提:牛顿定律时间离散运动方程普