我有三个部分.
我对Datatable
组件没有任何影响,因为我从npm获得了它.
现在我想把一个事件从EditButton
发送到我的Zonelist
.
Zonelist
个组成部分:
<template>
<datatable :columns="table_columns" :data="table_rows" filterable paginate v-on:remove="removeItem"></datatable>
</template>
<script>
import datatable from 'vuejs-datatable';
import moment from 'moment';
export default {
data() {
return {
table_columns: [
{label: "Zone", component: 'ZoneLink'},
{label: "Last updated", callback (row) {
let locale = $('html').closest('[lang]').attr('lang') || 'en';
moment.locale(locale);
return moment(row.last_updated).format('D. MMM YYYY');
}},
{label: '', component: 'EditButton'}
],
table_rows: [
{
"name": "xyz.de",
"last_updated": "2017-10-21 17:29:50"
}
],
form: {
name: '',
errors: []
}
};
},
components: {
datatable
},
methods: {
removeItem (item) {
this.table_rows.forEach((value, index, array) => {
if (value.name === item) {
Vue.delete(array, index);
}
});
}
}
}
</script>
现在我的EditButton
组件$emit()
是remove
事件,带有一个参数.
但什么都没发生.所以我认为vue无法定位侦听器.
(我在这里使用ES6的方法速记)
我怎样才能正确地做到这一点,而不从EditButton
通过this.$parent.$parent
改变Zonelist
的状态?