laravel - 使用 btable 将事件传输到父组件
问题描述
我正在使用 laravel(也许这对这个问题并不重要),带有 vue 和 bootstrap-vue。
我有一个模型Subnet
,并且我创建了一个名为SubnetTable
thats 的 vue 组件,它显示了一个表格,其中每个subnets
. 在每一个中都显示了一个删除按钮,该按钮启动一个模式以确认删除子网(另一个名为 的自定义组件ModalDeleteSubnet
)。
我试图向SubnetTable
组件发出模态确认的结果,但它不起作用。我意识到这SubnetTable
不是以下内容的父母ModalDeleteSubnet
:
根 -> 子网表 -> BTable -> BTBody -> BTableCell -> ModalDeleteSubnet
所以,我想不可能以这种方式使发射工作......
使用 vue 创建像这样的东西(我认为很常见)的正确方法是什么:一个带有更新表数据的操作按钮的表?
希望我已经解释过了。对不起我的英语。
子网表
<template>
<div>
<b-card class="text-center">
<b-table small striped hover :items="data_subnets" :fields="fields" :tbody-tr-class="rowClass">
<template slot="[ip_address]" slot-scope="data_subnets">
<b>{{ long2ip(data_subnets.item.ip_address) }}</b>
</template>
<template slot="[actions]" slot-scope="data_subnets">
<b-button size="sm" :href="'subnets/'+ data_subnets.item.id">View</b-button>
<modal_edit-subnet></modal_edit-subnet>
<modal_delete-subnet :subnet="data_subnets.item"></modal_delete-subnet>
</template>
</b-table>
</b-card>
</div>
</template>
...
...
...
modal_delete-子网
<template>
<div>
<b-button size="sm" @click="showConfirmModal">Delete</b-button>
</div>
</template>
<script>
export default {
name: 'Modal_DeleteSubnet',
props: ['subnet'],
data(){
return {
data_subnet: this.subnet
}
},
methods : {
showConfirmModal() {
this.$bvModal.msgBoxConfirm('Please confirm that you want to delete the subnet...'
, {
title: long2ip(this.data_subnet.ip_address) + '/' + this.data_subnet.netmask,
size: 'sm',
buttonSize: 'sm',
okVariant: 'danger',
okTitle: 'Yes',
cancelTitle: 'No',
footerClass: 'p-2',
hideHeaderClose: false,
centered: true
})
.then(value => {
if (value==true)
{
this.$emit('deleteSubnet', this.data_subnet.id)
}
})
.catch(err => {
// An error occurred
})
}
}
}
</script>
解决方案
只需将其传递给父母。
<modal_delete-subnet :subnet="data_subnets.item" @delete-subnet="$emit('delete-subnet', $event)"></modal_delete-subnet>
或者,如果您有删除处理程序SubnetTable
,请在此处处理。
<modal_delete-subnet :subnet="data_subnets.item" @delete-subnet="deleteHandler"></modal_delete-subnet>
export default {
...
methods: {
deleteHandler(e) {
console.log(e)
// delete actions here
},
},
...
}
推荐阅读
- c# - 我收到此错误无法将字符串隐式转换为 system.data.datatable
- c++ - How can I write a better and cleaner version of my bank account code?
- c++ - Getting errors trying to pass a vector to a class's function C++
- python - Python:每组多个统计信息
- javascript - 电脑与手机的区别
- android - Android:样式未应用于按钮
- c# - 无法创建类型为“System.Tuple”的常量值
- linux - 如何将 sed 与模式文件一起使用并就地使用 sed
- keras - Keras 中的 TypeError:即使已经提供了 shuffle="batch",也可以通过 shuffle="batch"
- mongodb - MongoDb 和 F#:如何获取集合中字段的最小值和最大值?