Closed thekordy closed 7 years ago
@thekordy Not at the moment. I have an idea about this but still haven't had time to work on it.
What about something like that?
// Vuetable.vue L.50
<component @CustomAction:action-item="fireEvent" :is="extractArgs(field.name)" :row-data="item"></component>
and then i can emit it in the custom action component
Vue.component('custom-actions', {
...
methods: {
onClick: function (action, data) {
this.$emit('CustomAction:action-item', 'action', {action: action, data: data});
},
}
and register it in the vuetable directive
<vuetable ref="vuetable"
...
@vuetable:action="onActions"
></vuetable>
I then receive it in the Vue instance
onActions(data) {
if (data.action == 'delete') {
this.deleteAction(data.data);
}
},
Or do you think there is a better way to register the custom event?
@thekordy It's already working for event, no modification to vuetable-2 template for that.
You just have to make your component emit the event on the $parent
(which is vuetable-2) by changing this:
this.$emit('CustomAction:action-item', 'action', {action: action, data: data});
to this:
this.$parent.$emit('CustomAction:action-item', 'action', {action: action, data: data});
then, you can capture the event in the main vue instance, like so
<vuetable ref="vuetable"
...
@CustomAction:action-item="onActions"
></vuetable>
Passing additional option to the custom component is the real problem here that I'm thinking about.
if i use three vuetbale , only one onActions is work, What's the matter?
@18979687252 I don't see you code so I can't really tell if you did it correctly or not. You can open a new issue and put some of your code. That will make it easier to discuss and work on.
@ratiw Thanks a lot :+1:
Hello,
If I didn't miss it somewhere, Is there a way to pass props or events to the actions custom component without modifying Vuetable?