【发布时间】:2020-10-01 19:40:51
【问题描述】:
我正在使用 Vuetify 数据表,并且我在其中两列上使用 v-slot:item 来插入 switches。
<v-data-table
:headers="headers"
:items="records"
:search="search"
:items-per-page="5"
>
<template v-slot:item.monitor="{ item }">
<v-switch v-model="item.monitor" color="success"></v-switch>
</template>
<template v-slot:item.manage="{ item }">
<v-switch v-model="item.manage" color="success"></v-switch>
</template>
</v-data-table>
我想要做的是将开关设置为 Item Group 以便一次只能选择一个(打开),但两者都可以是 false(关闭)。所以只有一个可以有真正的价值。
我曾尝试使用 Item Group component 和 got that to work,但我不确定是否可以按照我想要的方式在表格中使用,因为这两个开关位于不同的插槽中。我的印象是 v-item 应该是兄弟组件,所以这让我认为这不适用于这种情况。
【问题讨论】:
-
您将无法将
v-item-group与表格行一起使用 - 浏览器将忽略 TR 标记内除 TD 之外的任何内容,以及 TBODY 标记内除 TR 之外的任何内容。您有 2 个选项:(a) 将同一行上所有开关的v-model设置为一个数组,然后使用一个观察器,如果数组中有超过 1 个元素,则该观察器将取消这些数组中的值; (b) 在每个开关上设置一个@change处理程序,并取消选中同一行上的所有其他开关。
标签: vue.js vuex vuetify.js