Vue @click olay işleyicisine bir parametre nasıl iletilir


95

Vue.js kullanarak bir tablo oluşturuyorum ve onClickgeçen her satır için bir olay tanımlamak istiyorum contactID. İşte kod:

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

Bir satıra tıklandığında addToCount(), çalışan çağrıdır . Geçmek istiyorum item.contactIDiçin addToCount(). Birisi bunun için doğru sözdizimini önerebilir mi?

Yanıtlar:


116

Vue direktiflerini kullandığınızda, ifadeler Vue bağlamında değerlendirilir, böylece bir şeyleri sarmanıza gerek kalmaz {}.

@clickv-on:clickdirektifin kısaltması olduğundan aynı kurallar geçerlidir.

Sizin durumunuzda, sadece kullanın @click="addToCount(item.contactID)"


1
Ya iletmek istediğim bağımsız değişken yinelenmiş ve anahtarlanabilir değil, bu şekilde sabit kodlanmışsa <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> ve switchRoom yöntemindeki a öğelerinin metin içeriğini kullanmak istersem?
Akin Hwan

1
@AkinHwan Zaten kodlanmışsa, metni parametre olarak göndermeniz yeterlidir@click="switchRoom('Sky Room')"
Brian Glaz

135

Normal bir Javascript ifadesi kullanın, hayır {}veya gerekli herhangi bir şey:

@click="addToCount(item.contactID)"

olay nesnesine de ihtiyacınız varsa:

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

0

Aynı sorunu yaşadım ve işte nasıl geçmeyi başardım:

Senin durumunda addToCount()aranan var. şimdi kullanıcı tıkladığında bir parametre geçmek için şunu söyleyebilirsiniz:@click="addToCount(item.contactID)"

işlev uygulamanızda aşağıdaki gibi parametreleri alabilirsiniz:

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!

}

Teşekkürler. Cevabınız @Linus tarafından sağlanan cevaba benzer
user761100
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.