为了账号安全,请及时绑定邮箱和手机立即绑定

将另一行 q-table 中的 q-table 作为子项渲染

将另一行 q-table 中的 q-table 作为子项渲染

梵蒂冈之花 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>


查看完整回答
反对 回复 2023-08-18
  • 1 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信