Je passe un paramètre dans les v-on:input
directives. Si je ne le passe pas, je peux accéder à l'événement dans la méthode. Est-il possible que je puisse toujours accéder à l'événement en passant le paramètre à la fonction. Non pas que j'utilise vue-router:
C'est sans passer le paramètre. Je peux accéder à l'objet événement
HTML
<input type="number" v-on:input="addToCart" min="0" placeholder="0">
Javascript
methods: {
addToCart: function (event) {
// I need to access the element by using event.target
console.log('In addToCart')
console.log(event.target)
}
}
C'est lors du passage du paramètre. Je ne peux pas accéder à l'objet événement
HTML
<input type="number" v-on:input="addToCart(ticket.id)" min="0" placeholder="0">
Javascript
methods: {
addToCart: function (id) {
// How can I access the element by using event
console.log('In addToCart')
console.log(id)
}
}
Voici un extrait de code, qui devrait être assez bon pour reproduire le problème que je rencontre
Property or method "event" is not defined on the instance but referenced during render. Make sure to declare reactive data properties in the data option
v-on:input
?$event
variable spéciale à l'appel de méthodev-on:input="addToCart($event, num)"
$event
, nonevent
Vous pouvez également faire quelque chose comme ça ...
Evan You lui-même a recommandé cette technique dans un message sur le forum Vue. En général, certains événements peuvent émettre plus d'un argument. De même, comme l' indique la documentation, la variable interne $ event est destinée à transmettre l'événement DOM d'origine.
la source
En fonction des arguments à transmettre, en particulier pour les gestionnaires d'événements personnalisés, vous pouvez faire quelque chose comme ceci:
<div @customEvent='(arg1) => myCallback(arg1, arg2)'>Hello!</div>
la source