web-dev-qa-db-fra.com

Comment passer un paramètre à Vue @click

Je crée une table à l'aide de Vue.js et je souhaite définir un événement onClick pour chaque ligne transmettant contactID. Voici le code:

<tr v-for="item in items" class="static" 
    v-bind:class="{'evenRow': item.oddeven=='1', 'oddRow': item.oddeven=='0' }"
@click="addToCount('{item.contactID}')"
>
    <td>{{item.contactName}}</td>
    <td>{{item.recipient}}</td>
</tr>   

En cliquant sur une ligne, il appelle addToCount(), qui fonctionne. Je veux passer item.contactID à addToCount(). Quelqu'un pourrait-il suggérer la syntaxe correcte pour cela? Merci

60
user761100

Lorsque vous utilisez les directives Vue, les expressions sont évaluées dans le contexte de Vue. Vous n'avez donc pas besoin d'envelopper les éléments dans {}.

@click n'est qu'un raccourci pour la directive v-on:click, de sorte que les mêmes règles s'appliquent.

Dans votre cas, utilisez simplement @click="addToCount(item.contactID)"

69
Brian Glaz

Utilisez simplement une expression Javascript normale, pas de {} ni rien de nécessaire:

@click="addToCount(item.contactID)"

si vous avez également besoin de l'objet event:

@click="addToCount(item.contactID, $event)"
94
Linus Borg