Bootstrap Vue表:单击行时显示详细信息

ant*_*nko 8 javascript vue.js bootstrap-vue

试图获得与文档体验不同的内容:不是通过单击按钮而是在单击行时显示行详细信息。而且文档缺乏有关如何像示例中那样使它与众不同的细节。

<b-table
    v-if="tableIsReady"
    :items="deals"
    :fields="fields" 
    :per-page="recordsPerPage"
    no-local-sorting 
    @sort-changed="sorting" 
    responsive 
    flex 
    striped 
    hover
    @row-clicked="expandAdditionalInfo" 
  > 
   <template slot="row-details" slot-scope="row">
    <b-card>
      <h1>hello</h1>
    </b-card>
  </template>
 </b-table>
Run Code Online (Sandbox Code Playgroud)

这是我的功能,但我认为它根本不起作用

expandAdditionalInfo(row) {
  row.showDetails();
}
Run Code Online (Sandbox Code Playgroud)

est*_*ani 20

很难找到...但只需添加以下内容:

@row-clicked="item=>$set(item, '_showDetails', !item._showDetails)"
Run Code Online (Sandbox Code Playgroud)

解释

$set保留即使反应_showDetails并不存在。

遗憾的是,行对象不可访问,因此toggleDetails 不是这里的选项。


Tom*_*hah 8

如Bootstrap Vue表文档的行详细信息支持部分所述,您可以更改_showDetails行项目的属性:

如果记录的_showDetails属性设置为true,并且存在行详细范围的槽,则会在该项目的正下方显示新行,并显示行详细范围的槽的内容。

在您的情况下,您需要以下内容:

expandAdditionalInfo(row) {
  row._showDetails = !row._showDetails;
},
Run Code Online (Sandbox Code Playgroud)

本代码笔所示

  • 我可以想到的@Anand Best选项是遍历所有行,将每一行与您要显示的行进行比较(例如具有唯一ID),并将所需行的_showDetails设置为true,将所有其他行设置为false。我不知道有任何内置功能可以为您解决这个问题。 (2认同)