如何在 b-table 的 v-slot:cell() 模板中获取项目值 - BootstrapVue

Posted

技术标签:

【中文标题】如何在 b-table 的 v-slot:cell() 模板中获取项目值 - BootstrapVue【英文标题】:How to get item value in v-slot:cell() template of b-table - BootstrapVue 【发布时间】:2020-02-16 19:39:41 【问题描述】:

我是编程新手。我试图弄清楚如何绑定数据以获取链接:href 使用 store、vuex 和 bootstrap-vue 表工作。我为此花了4天时间,现在我快死了。请帮忙。

books.js(store, vuex)

books: [
    
      id: 1,
      name: "name 1",
      bookTitle: "book1",
      thumbnail: '../../assets/img/book01.jpeg',
      url: "https://www.google.com",
      regDate: '2019-10'
    ,
    
       id: 2,
      name: "name2",
      bookTitle: "book2",
      thumbnail: "book2",
      url: "http://www.yahoo.com",
      regDate: '2019-10'
    ,

BookList.vue

<script>
export default 
  name: "BookList",
  components: 
  ,
  computed: 
    fields() 
      return this.$store.state.fields
    ,
    books() 
      return this.$store.state.books
    ,
    bookUrl() 
      return this.$store.state.books.url
    
  ,
  data() 
    return 
      itemFields: this.$store.state.fields,
      items: this.$store.state.books,
      //url: this.$store.state.books.url
    
  

;
</script>
<template>
  <b-container>
    <b-table striped hover :items="items" :fields="itemFields" >
      <template v-slot:cell(thumbnail)="items">
          <img src="" >
      </template>
      <template v-slot:cell(url)="items">
          <b-link :href="bookUrl" >link</b-link>
      </template>
    </b-table>
  </b-container>
</template>

【问题讨论】:

【参考方案1】:

单元格槽包含您通常感兴趣的两个属性:

item(当前行,或者准确地说,items 中的当前 itemvalue(单元格 - 或者,准确地说,item 中当前列的 value)。

因此,考虑到您的数据,在v-slot:cell(url)=" value, item " 的情况下,value 等价于item.url

以下任何一种都可以:

<template v-slot:cell(url)=" value ">
  <b-link :href="value">link</b-link>
</template>
<template v-slot:cell(url)="slot">
  <b-link :href="slot.value"> slot.item.bookTitle </b-link>
</template>
<template v-slot:cell(url)=" item ">
  <b-link :href="item.url"> item.bookTitle </b-link>
</template>

工作示例here。


请注意,您的问题包含一些可能会阻止您的代码工作的小问题(itemFields 被引用但未定义,未使用适当的 getter 等...)。有关详细信息,请查看工作示例。 并阅读文档!

【讨论】:

这太棒了。我的天啊。非常感谢你帮助我。有用!所有这些都完美无缺。并感谢您的注意。我真的很感激 非常感谢,关于 b-table 的文档有点混乱

以上是关于如何在 b-table 的 v-slot:cell() 模板中获取项目值 - BootstrapVue的主要内容,如果未能解决你的问题,请参考以下文章

如何在 BootstraVue b-table 中更改表头颜色

Vue-Bootstrap:如何触发一个 b-table 的排序以触发另一个 b-table 的排序?

如何在 b-table 模板标签中显示来自道具的数据?

如何让 Vue b-table 滚动带有固定标题的正文

如何将单元格模板传递给带有 b-table 的组件?

b-table组件中的所有列都可以启用排序吗?