问题描述:在某个页面需打开一个Modal,而后这个Modal里有一个Form表单,点击肯定时我须要先校验表单数据是否输入正确,不肯定则不但愿关闭窗口;(问题是:只要点击确认 loading :false 状况下iview默认就把窗口就关闭了)git
API上也只是说了经过loading状态来手动关闭对话框,可是在须要验证form表单,表单验证经过再关闭modal 这种环境下,彷佛并不实用,当首次表单验证不经过时,若设置 loading = true,此时的肯定按钮一直为加载状态,后面那个肯定按钮根本没法点击,github
后来在网上找到了解决办法,亲测能够用,关键一步操做 this.$nextTick(() => { this.loading = true; }); 在这里记录下来:iview
<template>
<div> <Button type="primary" @click="modal1 = true">显示对话框</Button> <Modal v-model="modal1" title="Modal" @on-ok="ok" :loading="loading"> <p>对话框内容</p> <p>对话框内容</p> <p>对话框内容</p> </Modal> </div> </template> <script> export default { data () { return { modal1: false, loading: true } }, methods: { ok () { this.$Message.info('异步验证数据'); setTimeout(() => { this.loading = false; this.$nextTick(() => { this.loading = true; }); }, 1000); } } } </script>测试以后仍是有一些小问题,不是功能上问题,表单验证经过后,点击确认按钮,确认按钮的加载状态会闪现一下,而后看到modal关闭,后续再找找有没有更好的办法原文连接: https://github.com/iview/iview/issues/597