如何在 b-table 的 v-slot:cell() 模板中获取项目值 - BootstrapVue
How to get item value in v-slot:cell() template of b-table - BootstrapVue
我是编程新手。我正在尝试弄清楚如何绑定数据以使用商店、vuex 和 bootstrap-vue table 获得 link:href 工作。我为此花了 4 天,现在我快死了。请帮忙。
books.js(商店,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="" alt="image">
</template>
<template v-slot:cell(url)="items">
<b-link :href="bookUrl" >link</b-link>
</template>
</b-table>
</b-container>
</template>
单元槽包含您通常感兴趣的两个属性:
item
(当前行,或者更确切地说,items
中的当前item
)
value
(单元格 - 或者,准确地说,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
被引用但未定义,未使用正确的吸气剂等)。有关详细信息,请查看工作示例。
并阅读文档!
我是编程新手。我正在尝试弄清楚如何绑定数据以使用商店、vuex 和 bootstrap-vue table 获得 link:href 工作。我为此花了 4 天,现在我快死了。请帮忙。
books.js(商店,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="" alt="image">
</template>
<template v-slot:cell(url)="items">
<b-link :href="bookUrl" >link</b-link>
</template>
</b-table>
</b-container>
</template>
单元槽包含您通常感兴趣的两个属性:
item
(当前行,或者更确切地说,items
中的当前item
)value
(单元格 - 或者,准确地说,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
被引用但未定义,未使用正确的吸气剂等)。有关详细信息,请查看工作示例。
并阅读文档!