vuejs3 - Vue v-for循环绑定对象键选择元素
问题描述
我有这样的数据 - 电话对象的键可以是“移动”,“家庭”......
contacts[
11:{
name: "Mr Blobby"
phone: {
mobile: "07123 456789",
home: "0201 2345 6789"
}
...
}
...{}
显示它(cRud)很容易:
<div v-for="contact in contacts" :key="contact.id" :contact="contact">
<div v-for="(phone, type) in contact.phone" :key="type" :phone="phone">
<b>{{ type }}</b>
<h2>{{ phone }}</h2>
</div>
</div>
但是如何使用 select 和 v-model (CrUd) 专门绑定密钥(移动/家庭...)?
<div v-for="(phone, index) in contact.phone" :key="phone">
<input type="tel" v-model.trim="contact.phone[index]" />
<select v-model="???">
<option value="mobile">Mobile</option>
option value="home">Home</option>
</select>
</div>
解决方案
如果您想遍历电话对象的属性,下面的代码应该可以工作。然后,您可以使用v-model将选择值绑定到变量。
<select v-model="selectedPhone">
<option disabled value="">Select a phone</option>
<option
v-for="(value, name) in contact.phone"
:key="value"
:value="name"
>
{{ name }}
</option>
</select>
在 v-for 中,我们提供第二个参数 'name'(aka key),它将是 'mobile' 或 'home',然后我们将其设置为选项值。所以我们将电话对象键设置为我认为你想要的选项值?
您还应该在组件的 data 选项中声明 v-model 变量的初始值。
data () {
return {
selectedPhone: ''
}
}
推荐阅读
- vb.net - 在固定大小的平台上测量盒子或物体的大小
- python - 用于从 nd 数组中切片特定单元格的 numpy 快速操作
- c - 回顾这个链表程序
- python - 安装z3后路径问题而不是root
- php - 在验证之前编辑请求数据
- azure - 拉取后 ACI 缓存 docker 图像
- r - 具有数字模式的字符串中的字符数(在 R 中)?
- c# - PDFsharp (1.50.5147) 设置 OwnerPassword 混淆了文档颜色
- python-sphinx - 构建文档时如何告诉 sphinx 忽略“包含”指令?
- python - 如何自定义 Django 的默认邮件模板?(smtpd)