javascript - 根据 vuejs 中以 json 形式出现的响应,预先检查复选框
问题描述
对不起我的英语不好。我正在尝试预先选择那些值已保存在数据库中的复选框。我在 vuejs 中使用 javascript 完成了它,但是那些选中的复选框值没有存储在数组中。
我的代码就像
角色.component.js
getRoleRowData(data) {
this.roleaction = "edit";
this.addrolemodal = true;
console.log(data.role_id);
axios
.post(apiUrl.api_url + "getRolePermissionData", {
role_id: data.role_id
}).then(
result => {
this.permid = result.data;
var list = [];
result.data.forEach(function(value) {
list.push(value.perm_id);
});
var options = list;
for (var i = 0; i < options.length; i++) {
if (options[i]) document.querySelectorAll('input[value="' + options[i] + '"][type="checkbox"]')[0].checked = true;
}
},
error => {
console.error(error);
}
);
this.addrole = data;
},
和 role.component.html
<div class="col-md-8">
<b-form-fieldset>
<div class="form" id="demo">
<h6>Permissions</h6>
<span v-for="perm_name_obj in listPermissionData">
<input type="checkbox" class="perm_id" v-bind:value="perm_name_obj.perm_id" name="perm_id" id="perm_name" v-model="checkedPerm_Id"> {{perm_name_obj.perm_name}}<br>
</span>
<span>Checked names: {{ checkedPerm_Id }}</span>
</div>
</b-form-fieldset>
</div>
和输出
简而言之,我想预先检查 vuejs 中哪些值存储在数据库中的复选框。
解决方案
请参见以下示例,使用模拟数据
var app = new Vue({
el: '#app',
data () {
return {
listPermissionData: [],
checkedPerm_Id: []
}
},
created () {
setTimeout(_=>{
//Here simulates axois to request Permission data
this.listPermissionData = [
{perm_id:1,perm_name:'perm_name1'},
{perm_id:2,perm_name:'perm_name2'},
{perm_id:3,perm_name:'perm_name3'},
{perm_id:4,perm_name:'perm_name4'},
{perm_id:5,perm_name:'perm_name5'}
];
//Here simulates axois to request Selected Permissions (result.data)
var selected = [
{perm_id:2,perm_name:'perm_name2'},
{perm_id:5,perm_name:'perm_name5'}
]
this.checkedPerm_Id = selected.map(o=>o.perm_id)
},1000)
}
})
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<div class="form">
<h6>Permissions</h6>
<span v-for="perm_name_obj in listPermissionData">
<input type="checkbox" class="perm_id" v-bind:value="perm_name_obj.perm_id" name="perm_id" id="perm_name" v-model="checkedPerm_Id"> {{perm_name_obj.perm_name}}<br>
</span>
<span>Checked names: {{ checkedPerm_Id }}</span>
</div>
</div>
推荐阅读
- sql - SQL Server - 打印 * 列的不同计数
- c++ - How to have sub functions in a class
- css - how to insert corretly my picture in css?
- python - TensorFlow not recognising feed_dict input
- c# - 单元测试在全部运行时失败,但在单次运行时通过
- amazon-web-services - Connect to different VPC inside of Kubernetes pod
- python - What is causing this JSONDecodeError?
- flutter - Flutter image_picker pickImage camera buttons
- excel - 如何在多行/列 Excel 电子表格中查找值的位置?
- python - 仅打印/绘制 CSV 文件中某些特定站点的特定列