【发布时间】:2020-04-13 16:28:26
【问题描述】:
我正在尝试将 v-model 动态绑定到 对象数组 内的 对象属性。我不知道该怎么做。目标是通过 Select html 标记选择用户,然后打印用户权限列表(来自 对象数组)以有可能更改 true/false 使用复选框并将更改保存到对象数组内的对象属性。
模板:
<div id="app">
<select v-model="selectedUser">
<option value="" disabled>Select User</option>
<option v-for="user in users" :value="user.name">{{ user.name }}</option>
</select>
<p>User Index: {{ getUserIndex }}</p>
<ul v-if="getUserIndex !== null">
<li v-for="(perm, id) in users[getUserIndex].perms">
<span>{{ perm.status }}</span>
<input type="checkbox" v-model="">
</li>
</ul>
</div>
脚本
new Vue({
el: "#app",
data: {
users: [
{ name: 'Alex', perms: [
{ status: 'active', perm: false },
{ status: 'invoice', perm: false }
] },
{ name: 'John', perms: [
{ status: 'active', perm: false },
{ status: 'invoice', perm: false }
] },
{ name: 'Helen', perms: [
{ status: 'active', perm: false },
{ status: 'invoice', perm: false }
] },
],
selectedUser: ''
},
computed: {
getUserIndex() {
let username = this.selectedUser;
let index = this.users.findIndex(el => el.name === username);
if (index == -1) {
return null
} else { return index }
}
},
})
我分享这个 JSFiddle 链接是因为我觉得很难用语言来解释。
https://jsfiddle.net/sgtmadcap/49bjwahs/141/
我需要将 v-model 动态绑定到每个 users[someindex].perms.perm 属性才能更改它。稍后我想将此数组上传到具有所有更改的 firebase 数据库。先感谢您!我知道这是一件基本的事情,但非常感谢任何帮助!附言对不起我的英语不好。
【问题讨论】:
标签: javascript arrays vue.js vuejs2 v-model