J'ai configuré un système de composants en utilisant vue-router pour un système d'événements simple. J'aimerais pouvoir utiliser le même composant pour éditer des événements existants et créer de nouveaux événements.Réutilisation du composant Vue, suppression des données
Je n'arrive pas à comprendre comment supprimer les données du composant lorsque je souhaite naviguer d'un événement à l'autre.
J'ai essayé les choses suivantes, qui ne fonctionnent pas:
- réglage eventId: null dans v-link
- mise eventId null par v sur: la mise cliquez sur
- eventId avec : this. $ route.params.eventId
Router Map: le point de routage create et eventDashboard vers le même composant.
router.map({
'/': {
name: 'calendar',
component: Vue.component('calendar'),
subRoutes: {
'/rightView': {
name: 'rightView',
component: Vue.component('rightView'),
},
},
},
'create': {
name: 'create',
component: Vue.component('create'),
subRoutes: {
'/rightView': {
name: 'rightView',
component: Vue.component('rightView'),
},
},
},
'eventdashboard/:eventId': {
name: 'event',
component: Vue.component('create'),
subRoutes: {
'/rightView': {
name: 'rightView',
component: Vue.component('rightView'),
},
},
},
})
Voici le bouton utilisé pour créer un nouvel événement:
<a v-link="{name: 'create', params: { eventId: null }, replace: true}" class="btn btn-success"><i class="fa fa-plus"></i> Create New Event</a>
Et composant:
Vue.component('create',
{
template: '#create',
data: function(){
return {
eventId: this.$route.params.eventId,
event: []
}
},
ready: function() {
this.getEvent();
},
methods: {
getEvent: function(eventId){
var getList = this.$http.get('event/'+this.eventId)
.success(function(data){
this.event = data;
}.bind(this));
},
}
});
Merci, ce qui est parfait. J'avais essayé à l'origine transition.to.params, je pense que mon erreur était de définir eventId dans les données ainsi que route-> données. – retrograde
@retrograde acclamations! – Deepak