【发布时间】:2018-10-27 15:24:06
【问题描述】:
我有以下指令:
import Vue from 'vue'
const Dialog = Vue.extend({
template: `
<div v-if="show" class="modal">
<div class="modal-body">
<div class="modal-header"><h3>Aktion bestätigen</h3></div>
<div class="modal-content">
<div class="uk-flex">
<div class="uk-margin-small-right">
<span uk-icon="icon: question; ratio: 3"></span>
</div>
<div>
Are You sure?
</div>
</div>
<hr>
<div class="uk-flex uk-flex-right">
<button class="uk-button uk-button-danger uk-margin-small-right" @click="confirmed">Yes</button>
<button class="uk-button uk-button-default" @click="show = false">Cancel</button>
</div>
</div>
</div>
</div>
`
});
Vue.directive('confirm', {
bind(el, binding, vnode) {
let confirm_method = binding.value;
el.handleClick = (e) => {
const data = { confirmed: confirm_method , show: true};
let dialog = new Dialog({data: data}).$mount();
document.getElementsByTagName('body')[0].appendChild(dialog.$el);
}
el.addEventListener('click', el.handleClick);
},
unbind(el) {
el.removeEventListener('click', el.handleClick);
}
});
这很好用。当我单击“取消”时,模式关闭。当我点击“是”时,Vue模板中定义的方法
<button v-confirm="delete">delete</button>
被执行。
但是模态没有出现。方法执行后,如何告诉modal关闭,并在出现错误时显示错误消息?
【问题讨论】:
标签: modal-dialog vuejs2