ant-design-vue/components/modal/demo/confirm-router.md

1.2 KiB

#### 销毁确认对话框 使用 `Modal.destroyAll()` 可以销毁弹出的确认窗。通常用于路由监听当中,处理路由前进、后退不能销毁确认对话框的问题。 #### destroy confirmation modal dialog `Modal.destroyAll()` could destroy all confirmation modal dialogs. Usually, you can use it in router change event to destroy confirm modal dialog automatically
<template>
  <a-button @click="showConfirm">
    Confirm
  </a-button>
</template>
<script>
import Button from '../../button'
export default {
  methods: {
    showConfirm() {
      const self = this
      for (let i = 0; i < 3; i += 1) {
        setTimeout(() => {
          this.$confirm({
            content: 'destroy all',
            onOk() {
              return new Promise((resolve, reject) => {
                setTimeout(Math.random() > 0.5 ? resolve : reject, 1000);
              }).catch(() => console.log('Oops errors!'));
            },
            cancelText: 'Click to destroy all',
            onCancel() {
              self.destroyAll()
            },
          });
        }, i * 500);
      }
    },
    destroyAll() {
      this.$destroyAll();
    }
  }
}
</script>