梵蒂岡之花
2023-08-18 17:44:17
目標是渲染另一個列表中項目內的列表;例如帶有各自標題的章節列表。這通常可以通過 q-list 相對容易地完成。但是,我需要使用 q-tables 來做到這一點。我嘗試了以下解決方案,但 v-for 遇到了一些困難。<div id="q-app"> <div class="q-pa-md"> <q-table :data="data" :columns="columns" row-key="name" > <template v-slot:body="props"> <q-tr :props="props"> <q-td auto-width> <q-btn size="sm" color="accent" round dense @click="props.expand = !props.expand" :icon="props.expand ? 'remove' : 'add'" /> </q-td> <q-td v-for="col in props.cols" :key="col.name" :props="props" > {{ col.value }} </q-td> </q-tr> <q-tr :props="props" v-show="props.expand" v-for="item in data" > <q-table hide-header hide-bottom :data="item.childs" :columns="columnsChilds" style="background:yellow"> </q-table> </q-tr> </template> </q-table> </div> </div>代碼筆 https://codepen.io/ijose/pen/eYzawpx
1 回答

繁花不似錦
TA貢獻1851條經驗 獲得超4個贊
嵌套子數據是一個只有一個對象和一個重復屬性的數組name。它應該是一個對象數組:
data: [{
name: 'Frozen Yogurt',
childs: [
{ name: 'one' },
{ name: 'two' },
{ name: 'three' }
]
}, {
name: 'Ice cream sandwich',
childs: [
{ name: 'four' },
{ name: 'five' },
]
}, {
name: 'Eclair',
}]
由于q-table需要一組數據,因此您不需要v-for在內表上使用 a (與外表相同)。刪除v-for并將 設為data當前外行的childs對象:
<q-tr :props="props" v-show="props.expand">
<q-table
hide-header
hide-bottom
:data="props.row.childs"
:columns="columnsChilds"
style="background:yellow; min-width:300px">
</q-table>
</q-tr>
添加回答
舉報
0/150
提交
取消