Vue @ clickイベントハンドラーにパラメーターを渡す方法


94

Vue.jsを使用してテーブルを作成しており、onClickを渡す行ごとにイベントを定義したいと思いますcontactID。コードは次のとおりです。

<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>   

行をクリックするとaddToCount()、呼び出しが行われ、動作しています。私が渡したいitem.contactIDaddToCount()。誰かがこれの正しい構文を提案できますか?

回答:


114

Vueディレクティブを使用している場合、式はVueのコンテキストで評価されるため、でラップする必要はありません{}

@clickv-on:clickディレクティブの省略形であるため、同じルールが適用されます。

あなたの場合、単に使用してください @click="addToCount(item.contactID)"


1
渡したい引数が反復されてキー入力可能ではなく、そのようにハードコーディングされて<a href="#" @click="switchRoom" class="rooms">Interview Room</a> <a href="#" @click="switchRoom" class="rooms">Green Room</a> <a href="#" @click="switchRoom" class="rooms">Bavarian Caviar Room</a> <a href="#" @click="switchRoom" class="rooms">Sky Room</a> いて、switchRoomメソッドの要素のテキストコンテンツを使用したい場合はどうなりますか?
Akin Hwan

1
@AkinHwanすでにハードコーディングされている場合は、テキストをパラメーターとして送信するだけです@click="switchRoom('Sky Room')"
Brian Glaz 2018

135

通常のJavascript式を使用するだけで、{}何も必要ありません。

@click="addToCount(item.contactID)"

イベントオブジェクトも必要な場合:

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

0

私は同じ問題を抱えていました、そしてこれが私がどうやって通り抜けることができるかです:

あなたの場合、あなたはaddToCount()それを持っています。ユーザーがクリックしたときにパラメータを渡すようになりました。@click="addToCount(item.contactID)"

関数の実装では、次のようなパラメータを受け取ることができます。

addToCount(paramContactID){
 // the paramContactID contains the value you passed into the function when you called it
 // you can do what you want to do with the paramContactID in here!

}

ありがとう。あなたの答えはすでに@Linusで提供されるものに似ている
user761100
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.