2017-04-20 169 views
9

我正在使用Vue.js創建一個表,我想爲每個傳遞contactID的行定義一個onClick事件。這裏是代碼:如何將參數傳遞給Vue @click

<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()。有人可以爲此提出正確的語法嗎?謝謝

回答

13

當您使用Vue指令時,表達式將在Vue的上下文中進行評估,因此您不需要在{}中包裝東西。

@click只是v-bind:click指令的簡寫,所以適用相同的規則。

在你的情況下,只需使用@click="addToCount(item.contactID)"

+0

什麼如果我想傳遞的參數沒有迭代並且可以鍵入,但是相當硬編碼爲'Interview Room Green Room Bavarian Caviar Room Sky Room' 我想在switchRoom方法中使用a元素的文本內容? –

+0

@AkinHwan如果它已經被硬編碼,只需發送文本作爲參數'@ click =「switchRoom('Sky Room')」' –

24

只需使用一個正常的JavaScript表達式,沒有{}或必要的東西:

@click="addToCount(item.contactID)" 

,如果你還需要事件對象:

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

您節省了我的一天! '$ event'就是我正在尋找的東西。 :d – dani24