【发布时间】:2020-04-24 11:46:50
【问题描述】:
我有一个数据表,每行都有一个编辑和删除图标。当使用下面的代码并按下删除图标时,我会弹出一个系统,并且该行会按照我想要的方式删除。太完美了。
<template v-slot:item.actions="{ item }">
<v-icon small class="mr-2" @click="editItem(item)">mdi-pencil</v-icon>
<v-icon small text @click="deleteItem(item)">mdi-delete</v-icon>
</template>
方法脚本:
deleteItem(item) {
const index = this.companies.indexOf(item);
confirm("Are you sure you want to delete this item?") &&
this.companies.splice(index, 1);
},
现在我想要一个漂亮的对话框而不是系统弹出窗口。比如https://codepen.io/anon/pen/pYzZPZ?editors=1010。
所以我做了这个代码:
<template v-slot:item.actions="{ item }">
<v-icon small class="mr-2" @click="editItem(item)">mdi-pencil</v-icon>
<v-icon small @click="dialog2 = true">mdi-delete</v-icon>
<v-dialog v-model="dialog2" max-width="500px">
<v-card>
<v-card-title>Verwijderen</v-card-title>
<v-card-text>Weet je zeker dat je {{item.name}} wenst te verwijderen?</v-card-text>
<v-card-actions>
<v-btn color="primary" text @click="dialog2 = false">Close</v-btn>
<v-btn color="primary" text @click="deleteItem(item)">Verwijderen</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
并使用方法脚本:
deleteItem(item) {
const index = this.companies.indexOf(item);
this.companies.splice(index, 1);
this.dialog2 = false;
console.log("Delete success");
},
我已添加控制台日志以查看按钮是否确实执行了某些操作。 当我现在按下删除图标时,我确实得到了对话。当我按“关闭”时,一切都很好。 当我按删除时,我在控制台中收到消息“删除成功”,但该行没有删除。 当我再次按下删除按钮时,页面崩溃了....有什么想法吗?
【问题讨论】:
-
是的,肯定的。这与vuetifyjs.com/en/components/data-tables上的 CRUD 操作相同
标签: vue.js vuetify.js