vue-js-modal对话框无法关闭

时间:2018-10-10 21:06:03

标签: javascript vue.js vuejs2 modal-dialog

我不知道这是否只是文档中缺少的问题,还是我误解了vue-js-modal软件包的工作原理。 我似乎无法关闭对话框模式

示例和屏幕截图:

我创建了这个模式对话框:

delete_entry_modal(item) {
    this.$modal.show('dialog', {
        title: 'Delete entry?',
        text: `Are you sure that you want to delete the ${item.listing_type} entry from ${item.from_address} to ${item.to_address }@${item.to_domain}?`,
        buttons: [
            {
                title: 'Yes',
                handler: () => {
                    this.setLoading(true);
                    axios.delete('/api/lists/'+item.id+'/').then(response => {
                        this.setLoading(false);
                        this.notify(this.createNotification('Entry deleted', `The ${item.listing_type} entry from ${item.from_address} to ${item.to_address }@${item.to_domain} has been deleted`, 'success'));
                    }).catch(error => {
                        this.setLoading(false);
                        this.notify(this.createNotification('An error occurred', `${error}`, 'error'));
                    });
                    this.$emit('close');
                },
                default: true
            },
            {
                title: 'No'
            }
        ]
    })
}

我以这种方式加载VModal:

Vue.use(VModal, { dialog: true, dynamic: true, injectModalsContainer: true });

当我单击“否”按钮时,模态关闭。如果单击“是”,它将运行处理程序代码,但不会关闭模式。在键盘上按Enter会得到相同的结果

1 个答案:

答案 0 :(得分:2)

$emit通过向父级广播来在模板范围内工作。因为您没有使用模板,所以需要通过附加到VueConstructor

来显式定义要在语法内关闭的模式。
this.$modal.hide('dialog')