javascript - 根据来自 axios 的响应检查复选框
问题描述
我有一个复选框
<div class="checkbox">
<label>
<input type="checkbox" value="add user" v-model="user.permissions">Add User
</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox" value="edit user" v-model="user.permissions">
Edit User
</label>
</div>
复选框是 user.permission 数组上的 v-model
user:{
permissions: []
},
当我选中一个复选框时,它会产生这样的结果
user:Object
permissions:Array[2]
0:"edit user"
1:"add user"
现在,当我使用 axios 从后端获取数据并将数据放在user
editUser: function(id){
let vm = this;
axios.get('api/users/' + id)
.then( response => {
vm.user = response.data.data; //PUT RESPONSE DATA TO USER OBJECT
vm.usersModal = true;
})
.catch( error => {
console.log(error);
});
},
它会产生这样的输出
user:Object
created_at:"2018-08-28 03:17:33"
deleted_at:null
email:"aa@gmail.com"
id:3
name:"aa"
permissions:Array[2]
0:Object
created_at:"2018-08-28 03:03:41"
guard_name:"web"
id:2
name:"delete user"
pivot:Object
updated_at:"2018-08-28 03:03:41"
1:Object
created_at:"2018-08-28 03:03:41"
guard_name:"web"
id:3
name:"add user"
pivot:Object
updated_at:"2018-08-28 03:03:41"
updated_at:"2018-08-28 03:17:33"
现在如何仅使用 v-model user.permission 检查复选框。我使用了 v-model user.permission,因为我在发布请求时使用它。但是,当我使用 id 获取它时,数据结构会发生变化。
解决方案
您将不得不修改获取的响应:
editUser: function(id){
let vm = this;
axios.get('api/users/' + id)
.then( response => {
response.data.data.user.permissions = response.data.data.user.permissions.map((item) =>
{
return item.name; // <--- convert the array of objects into array of strings
});
vm.user = response.data.data; //PUT RESPONSE DATA TO USER OBJECT
vm.usersModal = true;
})
.catch( error => {
console.log(error);
});
},
推荐阅读
- testng - 为什么 maven-surefire-plugin 不按优先级顺序运行 testng.xml 文件?
- r - 在 lapply 中使用 data.table 时,get 中的第一个参数无效
- r - 进行循环并将结果存储在矩阵中
- c# - ASP.Net 应用程序:localhost 将您重定向了太多次
- typescript - 获取接口值的类型
- swift - SwiftNIO:如果代码在一个类中,则连接不起作用
- c++ - 函数后的双与号
- wordpress - 如何使用古腾堡调色板更改选择的颜色而不是整个块的颜色?
- angular - 传单绘制事件“draw:deleted”不删除图层
- javascript - Javascript:如何使用预期参数传递回调