<template>
<el-popconfirm
title="這是一段內容確定刪除嗎?"
>
<el-button slot="reference">刪除</el-button>
</el-popconfirm>
</template>
複製程式碼
這個是官網上的程式碼,在說明文件裡並沒有說明確定和取消按鈕的事件,如果去網上查,得知原始碼裡面事件名為
methods: {
confirm() {
this.visible = false;
this.$emit('onConfirm');
},
cancel() {
this.visible = false;
this.$emit('onCancel');
}
}
複製程式碼
可是如果使用以上事件名,vue則會警告,並且不會觸發事件
[Vue tip]: Event 'onconfirm' is emitted in component <ElPopconfirm> at packages/popconfirm/src/main.vue but the handler is registered for 'onConfirm'. Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use 'on-confirm' instead of 'onConfirm'.
複製程式碼
這個時候只要去原始碼裡把事件名前面的on去掉就好了
methods: {
confirm() {
this.visible = false;
this.$emit('confirm');
},
cancel() {
this.visible = false;
this.$emit('cancel');
}
}
複製程式碼
然後事件裡就這樣寫
<template>
<el-popconfirm
title="這是一段內容確定刪除嗎?"
@confirm="test"
>
<el-button slot="reference">刪除</el-button>
</el-popconfirm>
</template>
複製程式碼
去試一下吧