Javascript 使用Vue.js以更动态的方式显示复选框

Javascript 使用Vue.js以更动态的方式显示复选框,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我创建了一个表单,每个类别都有类别标签和复选框,如下所示: 我使用axios从google工作表中获取以下格式的值: 用于生成值的脚本: data(){ 返回{ 表格:{ 电邮:“, 姓名:“, 电话号码:“, 选中:[] }, 体育:[], 艺术:[], 舞蹈:[], 秀:真的 }; }, 方法:{ getCcaList(){ 这是axios .得到( “(谷歌表单批量获取API)” ) 。然后(响应=>{ 让cellValues=response.data.valueRanges[0]。

我创建了一个表单,每个类别都有类别标签和复选框,如下所示:

我使用axios从google工作表中获取以下格式的值:

用于生成值的脚本:

data(){
返回{
表格:{
电邮:“,
姓名:“,
电话号码:“,
选中:[]
},
体育:[],
艺术:[],
舞蹈:[],
秀:真的
};
},
方法:{
getCcaList(){
这是axios
.得到(
“(谷歌表单批量获取API)”
)
。然后(响应=>{
让cellValues=response.data.valueRanges[0]。值;
//cellValues[0][i]包含CCA单元格的值
//cellValues[1][i]包含类别单元格的值
for(设i=0;i
使用vue引导的HTML设计:

体育:


舞蹈:

艺术:
如果我决定在工作表中添加或删除类别,是否有任何方法可以创建上述格式而不必创建或删除数组

到目前为止,我已经尝试创建一个字典来存储GoogleSheet中的值,并使用v-for来显示类别值。但是,我无法根据类别显示俱乐部数组中的每个值

[
{类别:“体育”,俱乐部:[“篮球”、“足球”、“射箭”]},
{类别:“舞蹈”,俱乐部:[“萨尔萨”]},
{类别:“艺术”,俱乐部:[“绘画”、“唱诗班”、“乐队”、“绘画”]},
]

在我看来,拥有字典的想法是正确的,您只需更改模板即可。我创建了一个沙盒,其中有一个示例:

基本上你要做的就是拿字典

 categories: [
    { category: "Sports", club: ["Basketball", "Soccer", "Archery"] },
    { category: "Dance", club: ["Salsa"] },
    { category: "Arts", club: ["Painting", "Choir", "Band", "Drawing"] }
  ],
用v-for检查一下

<div v-for="c in categories" :key="c.category">
<label :for="c.category">{{c.category}}:</label>
  <br>
  <b-form-checkbox-group
    :name="c.category"
    v-model="form.checked"
    :options="c.club"
    stacked
    buttons
  ></b-form-checkbox-group>
</div>

{{c.category}}:


这样,每当您添加一个新类别时,模板就会处理它。

您所说的“但是,我无法根据其类别显示俱乐部基数组中的每个值”是什么意思。我只是尝试了一下,它对我有效(除非我不理解您想要什么)当我试图在club中显示值时,复选框显示是空的。我很难理解如何显示它们。非常感谢您的帮助!非常感谢!它就像一个符咒。我对Vue.js还是一个新手,并且对在对象上使用v-for和数组值感到困惑,因为没有太多的资源来显示它们n件像我要买的一样的东西。再次感谢你!