javascript - BootstrapVue 访问 slot 模板中的 b-table 行数据

标签 javascript vue.js vuejs2 vue-component bootstrap-vue

我在每一行上都有一个删除按钮,我需要从项目中获取 log_id 以传递给函数 deleteLog。该函数总是提醒 log_idundefined

如何在没有 undefined 的情况下将 log_id 传递给函数 deleteLog

<template>
    <b-table striped hover :items="items" :fields="fields">
        <template v-slot:cell(Delete)>
            <b-button variant="danger" v-on:click="deleteLog(log_id)">Delete</b-button>
        </template>
    </b-table>
</template>

<script>
export default {
    data() {
        return {
            fields: ['Year', 'Month', 'Round', 'Name', 'Delete', 'log_id'],
            items: []
        }
    }
}
</script>

最佳答案

您可以通过插槽数据访问行数据及其log_id:

<b-table striped hover :items="items" :fields="fields">
    <template v-slot:cell(Delete)="data"> <!-- `data` -->
        <b-button variant="danger" v-on:click="deleteLog(data.item.log_id)">Delete</b-button>
    </template>
</b-table>

这是另一种语法,destructuring插槽数据:

<b-table striped hover :items="items" :fields="fields">
    <template v-slot:cell(Delete)="{ item }"> <!-- `item` -->
      <b-button variant="danger" v-on:click="deleteLog(item.log_id)">Delete</b-button>
    </template>
</b-table>

关于javascript - BootstrapVue 访问 slot 模板中的 b-table 行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61357560/

相关文章:

javascript - 如何在 javascript 中没有 split 函数的情况下将字符串拆分为单词

typescript - 使用 Vuex mapGetters 时如何修复 TypeScript 错误?

javascript - 为什么在 Vue 中从数组中删除元素时会在最后一个索引处发生转换?

vue.js - 如何将哈巴狗与 Electron 战配合使用?

javascript - jQuery 可以在 Safari 上工作,但不能在 iOS 上工作 - 我可以做什么来调试?

javascript - For 循环中的 Promises

javascript - window.prompt 和 prompt 之间有什么真正的区别?

vue.js - v-show 不适用于 Prop

vue.js - Vue.js将函数从父级传递到子级

javascript - 如何制作 DIV 的 v-for 循环并按部分显示它们 (Vue.js)