我正在使用vue进行数据绑定。我想为访问级别控制创建一个小部件,所以我需要允许、拒绝和不确定状态。
这个标记很好,但没有不确定的状态:
<div class="row" v-for='a in context.This.Actions'>
<div class="col-96">
<input class="custom-control-input access-checkbox" v-bind:id="'chk_'+a.Name" v-bind:value="a.Id" v-model="context.This.RoleActions" indeterminate="true" type="checkbox" />
<label class="pointer" v-bind:for="'chk_'+a.Name">{{ a.Name }}</label>
</div>
</div>
变量为:
context.This.Actions = [
{ "Id": "id_1",
"Name": "AAA"
},
{ "Id": "id_2",
"Name": "BBB"
},
{ "Id": "id_3",
"Name": "CCC"
}
]
context.This.RoleActions = [ "id_1", "id_2" ]
我想要这个改变:
context.This.RoleActions = [ {"id_1":true}, {"id_2":false} ]
我期望得到以下结果:
- 第一个复选框:格子的
- 第二个复选框:未经检查的
- 另一个:不定的
3条答案
按热度按时间dl5txlt91#
Indetermined是复选框上的DOM属性,这意味着将其放入标记中不会有任何效果,它需要以编程方式应用。
即使在这样做之后,请记住复选框的状态仍然是选中或未选中。在处理表单时要记住这一点。区别只是视觉上的。(source)
记住这些注意事项,在Vue 2中,你可以在复选框中添加一个不确定的属性,如下所示:
<input type="checkbox" indeterminate.prop="true">
或绑定到组件中的动态值:
<input type="checkbox" :indeterminate.prop="dataProperty">
我会建议考虑到这一点进行重构。
qpgpyjmq2#
我在使用props with checkbox支持2和3状态时遇到了类似的问题。为了处理这个问题,我使用了computed property和getter使用Vuetify复选框
下面是我的例子
j2cgzkjk3#
简单的例子
使用情况