【发布时间】:2019-12-25 23:31:36
【问题描述】:
我正在使用 laravel(也许它对这个问题并不重要),带有 vue 和 bootstrap-vue。
我有一个模型 Subnet,并且我创建了一个名为 SubnetTable 的 vue 组件,它显示了一个表格,其中每个 subnets 都有一行。
每个都显示了一个删除按钮,该按钮启动一个模式以确认删除子网(另一个名为 ModalDeleteSubnet 的自定义组件)。
我试图将模态确认的结果发送到SubnetTable 组件,但它不起作用。我意识到SubnetTable 不是ModalDeleteSubnet 的父级:
Root -> SubnetTable -> 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-subnet
<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>
【问题讨论】:
-
如果能提供一些代码就好了:)
-
是的,对不起。添加了一些代码。
标签: laravel vue.js bootstrap-vue