Jér*_*ôme 4 vue.js vuejs2 bootstrap-vue
我正在使用 Bootstrap Vue 中的 Table,并且我试图在单击一行时显示行详细信息。
row-clicked
正如文档所说,我使用了事件,但我没有找到任何带有toggleDetails
方法的行详细信息。所以我什至不知道如何打开它以及toggleDetails
从哪里来。
有没有办法用row.clicked
事件打开这个详细信息行?
或者我应该使用另一种方法来做到这一点?
你有什么线索吗?
编辑
有一些代码可以更详细地说明我的问题,有我的表和详细信息行。
<b-table
v-if="items"
:items="items"
:fields="fields"
show-empty
striped
hover
responsive
empty-text="There is no messages to show"
class="col-sm-12 col-md-10"
@row-clicked="test"
>
<template
slot="message"
slot-scope="row"
>
{{ row.item.message }}
</template>
<template
slot="row-details"
slot-scope="row"
>
<code>{{ row.item.message }}</code>
</template>
</b-table>
Run Code Online (Sandbox Code Playgroud)
您可以看到row.clicked
我在表上使用的事件,然后是我尝试打开行详细信息的方法。这是一个带有一些 console.log 的简单方法
methods: {
test(item, index, event) {
console.log(item, index, event);
},
},
Run Code Online (Sandbox Code Playgroud)
您所要做的就是在您的“基本”行(可能在称为actions的行单元格中)的某个位置放置一个按钮,该按钮调用toggleDetails
该特定行的函数。
此按钮和详细信息行的代码应如下所示:
<template slot="actions" slot-scope="row">
<!-- We use @click.stop here to prevent a 'row-clicked' event from also happening -->
<b-button size="sm" @click.stop="row.toggleDetails">
{{ row.detailsShowing ? 'Hide' : 'Show' }} Details
</b-button>
</template>
<template slot="row-details" slot-scope="row">
<!-- Your row details' content here -->
</template>
Run Code Online (Sandbox Code Playgroud)
您可以在文档中找到更多示例和解释
如果要通过单击行中的任意位置来显示行详细信息,首先应向_showDetails
每个项目对象添加一个变量:
items: [
{ foo: true, bar: 40, _showDetails: false },
...
{ foo: true, bar: 100, _showDetails: false }
]
Run Code Online (Sandbox Code Playgroud)
然后你只需要为 row-clicked 事件添加适当的功能:
<b-table @row-clicked="onRowClicked" ...></b-table>
Run Code Online (Sandbox Code Playgroud)
在您的组件方法中:
methods: {
onRowClicked (item, index, event) {
item._showDetails = !item._showDetails;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9996 次 |
最近记录: |