Eu passo um parâmetro nas v-on:input
diretivas. Se eu não passar, posso acessar o evento no método Ainda existe alguma maneira de acessar o evento ao passar o parâmetro para a função. Não que eu esteja usando o vue-router:
Isso sem passar o parâmetro. Eu posso acessar o objeto de evento
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)
}
}
É quando passa o parâmetro. Não consigo acessar o objeto de evento
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)
}
}
Aqui está um trecho do código, que deve ser bom o suficiente para replicar o problema que estou tendo
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
variável para a chamada de métodov-on:input="addToCart($event, num)"
$event
, não #event
Você também pode fazer algo assim ...
Evan Você mesmo recomendou esta técnica em um post no fórum Vue. Em geral, alguns eventos podem emitir mais de um argumento. Além disso, como a documentação declara que a variável interna $ event é para passar o evento DOM original.
fonte
Dependendo dos argumentos que você precisa passar, especialmente para manipuladores de eventos personalizados, é possível fazer algo assim:
<div @customEvent='(arg1) => myCallback(arg1, arg2)'>Hello!</div>
fonte