iview中Modal對話框點擊確定后會自動關閉窗口


問題描述:在某個頁面需打開一個Modal,然后這個Modal里有一個Form表單,點擊確定時我需要先校驗表單數據是否輸入正確,不確定則不希望關閉窗口;(問題是:只要點擊確認 loading :false 情況下iview默認就把窗口就關閉了)

API上也只是說了通過loading狀態來手動關閉對話框,但是在需要驗證form表單,表單驗證通過再關閉modal 這種環境下,似乎並不實用,當首次表單驗證不通過時,若設置 loading = true,此時的確定按鈕一直為加載狀態,后面那個確定按鈕根本無法點擊,

后來在網上找到了解決辦法,親測可以用,關鍵一步操作  this.$nextTick(() => { this.loading = true; }); 在這里記錄下來:

<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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM