如果使用 Vuetify 在 v-for 中使用 v-checkbox 进行其他条件

Posted

技术标签:

【中文标题】如果使用 Vuetify 在 v-for 中使用 v-checkbox 进行其他条件【英文标题】:If else condition in v-for with v-checkbox using Vuetify 【发布时间】:2021-06-08 21:52:46 【问题描述】:

我正在尝试创建一个条件,即循环遍历一个对象并显示一些复选框,当属性的值为 true 时选中复选框,当值为 false 时使复选框未选中。必须禁用复选框。

我作为一个对象拥有的是:

abilities: 
  ABA: true,   
  CCA: false,
  DENVER: true,
  DIR: false,
  FLOORTIME: false,
  ICF: false,
  LIS: false,
  PIVOTAL: false,
  TTEACH: false

我试过的是:

<v-col md="3" v-for="(value, index) in getSingleUser.abilities" :key="index" :value="value">
  <v-row>
    <v-checkbox v-if="value = true" :label="index" v-model="Check" disabled ></v-checkbox>
  </v-row>
  <v-checkbox v-else :label="index" v-model="Uncheck" disabled ></v-checkbox>
</v-col>
data() 
  return 
    Check: true,
    Uncheck: false,
  

它是什么样子的:

但我想选中第一个和第三个,而其他的不选中。

PS:对不起,我是新手。

【问题讨论】:

【参考方案1】:

我认为你的条件有误

不应该是v-if="value = True",应该是v-if="value"或者v-if="value == 真”

<v-col md="3" v-for="(value, index) in getSingleUser.abilities" :key="index" :value="value">
  <v-row>
    <v-checkbox v-if="value" :label="index" v-model="Check" disabled ></v-checkbox>
  </v-row>
  <v-checkbox v-else :label="index" v-model="Uncheck" disabled ></v-checkbox>
</v-col>

但您当然可以优化您的代码块。但我只是给出了问题的答案

【讨论】:

【参考方案2】:
<v-col md="3" v-for="(value, index) in getSingleUser.abilities" :key="index">
  <v-row>
    <v-checkbox :label="index" :value="value" disabled></v-checkbox>
  </v-row>
</v-col>

v-col 上不需要:value="value"。 v-for 中的变量 value 可用于 v-for 及其所有子项。

您只需要一个复选框。该复选框不需要 v-model,因为它始终处于禁用状态(您不需要双向编辑),因此 :value 属性就可以了。

【讨论】:

我想你误会了我。我希望所有复选框都被禁用,但第一个和第三个复选框被选中并禁用,而其他复选框则具有未选中和禁用的错误值。

以上是关于如果使用 Vuetify 在 v-for 中使用 v-checkbox 进行其他条件的主要内容,如果未能解决你的问题,请参考以下文章

在 v-for 循环中使用 Vuetify v-btn 和加载器

VueJS/Vuetify v-for 中的不同颜色芯片,检查带有参数的对象:使用点表示法的颜色

如何使用 Vuetify 网格系统循环显示卡片组件?

我想将 vue-i18n 用于 vuetify 导航栏与 v-for ...(帮助)

如何突出显示 Vuetify 菜单中的选定项目?

为啥 v-for & axios 不一个个加载项目?