【发布时间】:2020-03-18 10:57:19
【问题描述】:
我正在使用 VueJS 2 和 Vuetify 来构建下面的订阅表单。从服务器获取并显示所有适用于订阅的首选项。图像中的首选项用于数字杂志订阅。对于印刷杂志的订阅偏好可能会有所不同。
从服务器获取的数据是这样的
preferences: [
{
id: "1",
title: "Subscription frequence",
options: ["Daily", "Weekly", "Fortnight", "Monthly"]
},
{
id: "2",
title: "Topics",
options: ["Sports", "Politics", "Art", "Music", "Health", "Tech"]
},
{
id: "3",
title: "Promotional Offers",
options: ["Daily", "Weekly", "Fortnight", "Monthly", "Never"]
}
]
我使用v-for 来显示如下首选项:
<v-col
v-for="pref in preferences"
:key="pref.id"
>
<span>{{ pref.title }}</span>
<v-checkbox
v-for="option in pref.options"
:key="option"
:v-model="pref.options"
:label="option"
color="red"
value="option"
hide-details
>
</v-checkbox>
</v-col>`
现在,由于所有首选项都具有相同的 options 数组,我无法弄清楚如何区分一个复选框组与另一个复选框组。因此为每个偏好组获取选中的复选框。
非常感谢任何提示。谢谢。
更新
这适用于input 类型,如@palash 答案所示。但不适用于 Vuetify v-checkbox。
【问题讨论】:
-
如果每个首选项中的
id是唯一的,那么您可以尝试将此 id 与复选框值 (:value="pref.id+'-'+option") 一起附加并在收到所选值时提取。
标签: javascript vue.js vuetify.js nuxt.js