我正在使用 Vue.js 创建一个表,并且我想为通过 contactID
的每一行定义一个 onClick
事件。这是代码:
<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.contactID
传递给 addToCount()
。有人可以为此建议正确的语法吗?
只需使用普通的 Javascript 表达式,不需要 {}
或任何必要的:
@click="addToCount(item.contactID)"
如果您还需要事件对象:
@click="addToCount(item.contactID, $event)"
当您使用 Vue 指令时,表达式是在 Vue 的上下文中计算的,因此您不需要将内容包装在 {}
中。
@click
只是 v-on:click
指令的简写,因此适用相同的规则。
在您的情况下,只需使用 @click="addToCount(item.contactID)"
<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 方法中使用 a 元素的文本内容怎么办?
@click="switchRoom('Sky Room')"
我遇到了同样的问题,这是我设法通过的方式:
在您的情况下,您有 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!
}