我不知道这是否只是文档中缺少的问题,还是我误解了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
会得到相同的结果
答案 0 :(得分:2)
$emit
通过向父级广播来在模板范围内工作。因为您没有使用模板,所以需要通过附加到VueConstructor
this.$modal.hide('dialog')