javascript - Vue 多个问题,每个问题都有多个选项
问题描述
我的数据库中有一个属性列表。我希望用户选择房产中的房屋类型。
财产 | 选定的物业类型 |
---|---|
物业 1 | ['studio_apartment', 'one_bedroom', 'two_bedroom'] |
属性 2 | ['studio_apartment', 'one_bedroom'] |
为了实现这一点,我使用了 Vue v-for 循环,如下所示:
<template>
<div v-for="(name, index) in propertyNames" :key="index">
NAME: {{ name }}<br />
<input
type="checkbox"
value="studio_apartment"
v-model="form.property_type"
/>Studio apartment<br />
<input
type="checkbox"
value="one_bedroom"
v-model="form.property_type"
/>One bedroom<br />
<input
type="checkbox"
value="two_bedroom"
v-model="form.property_type"
/>Two bedroom<br />
SELECTED: {{}}
</div>
</template>
<script>
import { mapGetters, mapActions } from "vuex";
export default {
data() {
return {
form: {
property_type: [],
},
};
},
</script>
问题是,例如,当我studio_apartment
在属性 1 中选择时,studio_apartment
会检查所有属性。如何仅单独获取每个属性的选定复选框。谢谢。
解决方案
form
发生这种情况是因为在每个循环迭代中只有一个实例被共享。
您可以更改form
为基于 的对象数组propertyNames
,使它们具有相同的数组长度;然后用的form
迭代索引:index
v-for
<template>
<div>
<div v-for="(name, index) in propertyNames" :key="index">
NAME: {{ name }}<br>
<input type="checkbox" value="studio_apartment" v-model="form[index].property_type">Studio apartment<br>
<input type="checkbox" value="one_bedroom" v-model="form[index].property_type">One bedroom<br>
<input type="checkbox" value="two_bedroom" v-model="form[index].property_type">Two bedroom<br>
</div>
</div>
</template>
<script>
export default {
data() {
const propertyNames = ['Property 1', 'Property 2']
return {
propertyNames,
form: propertyNames.map(name => ({ property_type: [] }))
}
}
}
</script>
推荐阅读
- android - 来自 dumpsys 中列出的显示的 adb screenrecord 辅助显示
- c# - 如何更新设置键的ac#字典,嵌套foreach循环中的值为空
- reactjs - React native Axios Django - Csrf failed referer checks failed no referer
- google-sheets - 如何使用查询将列数据解析为谷歌表格中的行
- html - Jquery 中内置的链接文本在 Razor 页面上不显示可点击的链接
- javascript - 如何清除其闭包函数或承诺之外的区间?
- ruby-on-rails - FactoryBot如何在多个工厂中访问相同的变量
- react-native - 找不到屏幕“用户”的“组件”、“getComponent”或“儿童”道具
- java - 我们如何在春季刷新 AnnotationconfigwebapplicationContext 之前删除/忽略对象?
- reactjs - 状态更改时未更新按钮属性