vue.js - 无法从表中删除用户
问题描述
我有一个嵌套表,我在其中按用户所属的部门对用户进行分组。我遇到的问题是,如果我单击删除按钮,我删除的特定用户不会从列表中删除,并且我的控制台中没有任何错误。
这是我的代码
<template>
<div>
<div class="row">
<div class="col-lg-12">
<table class="table table-bordered table-sm">
<thead>
<tr>
<th>Name</th>
<th>Job Title</th>
</tr>
</thead>
<tbody v-for="(users, department) in personnal">
<tr>
<td>{{ department }}</td>
</tr>
<tr v-for="user in users">
<td>{{ user.name }}</td>
<td>{{ user.job_title }}</td>
<td>
<div class="btn btn-danger btn-sm" @click="removeUser(user)">
<i class="fa fa-trash"></i>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</template>
export default
{
props: [],
data() {
return {
personnal: {},
}
},
computed: {
},
methods: {
getUsers(){
axios.get(`/api/users`).then(response => {
this.personnal = response.data.users;
});
},
removeUser(user){
axios.delete(`/api/users/${user.id}/delete`).then(response => {
Object.keys(this.personnal).forEach(user => {
this.personnal[user].filter(u => u.id !== response.data.id);
this.personnal[user].slice(response.data);
});
});
}
},
mounted() {
this.getUsers();
}
}
</script>
解决方案
首先,您必须在 click 事件中同时传递department
和:user
<div class="btn btn-danger btn-sm" @click="removeUser(department, user)">
<i class="fa fa-trash"></i>
</div>
然后,在removeUser
方法中:
removeUser(department, user){
axios.delete(`/api/users/${user.id}/delete`).then(response => {
const index = this.personnal[department].findIndex(u => u.id === user.id);
this.personnal[department].splice(index, 1);
});
}
推荐阅读
- sql - 将数据帧中的日期值传递给 Spark / Scala 中的查询
- javascript - Mongodb结合两个对象
- python - 如何打破一行很长的嵌套字典?
- sql - SQL Select 查询会选择在 Select 查询执行期间插入的记录吗?
- security - 如果用于身份验证的 JWT 令牌保存在 HTTP-Only cookie 中,您如何从 cookie 中读取它以便我可以将其包含在请求标头中?
- reactjs - SASS 相对 url 配置错误
- ruby-on-rails - 如何在表格中使用 check_box 以便可以访问数组中的表格属性?
- python - 如何在接收到特定消息时停止 Telethon 对话
- python - python子进程popen以不同用户身份执行
- c# - SQLite C# System.Data.SQLite.SQLiteException