You need to enable JavaScript to run this app. Vuetify中v-for遍历对象按属性值控制v-checkbox的勾选与禁用
优惠活动
大模型
产品
解决方案
定价
更多

Vuetify中v-for遍历对象按属性值控制v-checkbox的勾选与禁用

现有代码存在的核心问题
  • 条件逻辑错误:v-if="value = true" 使用单等号执行赋值操作,而非双等号/三等号的判断逻辑。运行时会把遍历到的每个权限值强制覆写为true,直接篡改原始abilities对象的结构,后续的else分支永远不会触发。
  • 状态绑定错误:所有勾选态的复选框统一绑定全局Check变量,所有未勾选态的复选框统一绑定全局Uncheck变量。即便判断逻辑修正,同状态的复选框也会出现双向同步联动的问题,无法独立匹配每个权限的真实状态。
  • 结构冗余错乱:循环渲染时,一部分复选框被嵌套在v-row容器内,另一部分直接放置在v-col节点下,布局结构不对齐,完全没必要拆分两个v-if分支重复渲染相同的复选框组件。
适配需求的正确实现

所有复选框为禁用纯展示状态,不需要拆分渲染分支,也不需要定义Check、Uncheck两个全局变量,直接遍历权限对象、单向绑定每个权限的布尔值即可。
替换后的模板代码:

<v-col 
  md="3" 
  v-for="(permValue, permKey) in getSingleUser.abilities" 
  :key="permKey"
>
  <v-checkbox
    :label="permKey"
    :model-value="permValue"
    disabled
  ></v-checkbox>
</v-col>

data中原有定义的Check、Uncheck变量可直接删除,无使用场景。
该实现的渲染效果完全匹配需求:值为true的ABA、DENVER权限自动渲染为勾选状态,其余值为false的权限渲染为未勾选状态,所有复选框全程禁用不可交互,且单向绑定的逻辑不会反向修改原始权限对象的数据。


内容的提问来源于stack exchange,提问作者Mina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.30 13:54:03