我正在使用Vue并拥有:
<tr v-for="(blabla, index) in data">
<td>{{ blabla.id }}</td>
<td>{{ blabla.username }}</td>
<td>{{ blabla.name }}</td>
<td>
<router-link
:to="{ name: 'name', params: { blabla: blabla.id } }"
class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent"
>
Details
</router-link>
</td>
</tr>
如何使整行可以点击,而不仅仅是具有路由器链接的按钮?
答案 0 :(得分:5)
在tr
和change the route programmatically上添加点击监听器:
<tr v-for="(blabla, index) in data" @click="goToBlabla(blabla.id)">
<td>{{ blabla.id }}</td>
<td>{{ blabla.username }}</td>
<td>{{ blabla.name }}</td>
<td>
<a class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent">
Details
</a>
</td>
</tr>
methods: {
goToBlabla(id) {
this.$router.push({ name: 'name', params: { blabla: id } });
}
}
或者,您可以将v-for
放在<router-link>
上,tag
属性设置为tr
:
<router-link
v-for="(blabla, index) in data"
:to="{ name: 'name', params: { blabla: blabla.id } }"
tag="tr"
>
<td>{{ blabla.id }}</td>
<td>{{ blabla.username }}</td>
<td>{{ blabla.name }}</td>
<td>
<a class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent">
Details
</a>
</td>
</router-link>
将代码指定为tr
会将该代码呈现为tr
元素。