javascript - Vue v-for 只展开点击的数据
问题描述
我有一个带有 Firebase 的 Vue 项目。我正在使用 v-for 从 Firebase 数据库获取数据,并且我有一个“描述”值。当用户单击 tr 上的任意位置时,我想展开并仅显示单击值的描述。但在我的代码中;当我单击 tbody 时展开所有描述值。我怎样才能解决这个问题?
我的代码:
<tbody v-for="item in items" :key="item.id" @click="isClicked = !isClicked">
<tr >
<td>
{{item.name}}
</td>
<td>
{{item.surname}}
</td>
<td>
{{item.explanation}}
</td>
<td>
<span @click="isDelete(item)">X</span>
</td>
</tr>
<tr v-if="isClicked === true">
{{item.desc}}
</tr>
</tbody>
感谢您的帮助。
解决方案
获取循环的索引:
v-for="(item, index) in items"
创建一个接受索引作为参数的函数:
setActiveRow(index)
分配index
给isClicked
变量:
setActiveRow(index) {
this.isClicked = index
}
现在将其用作您的点击功能并比较isClicked
行中的变量:
<tbody v-for="(item, index) in items" :key="item.id" @click="setActiveRow(index)">
然后仅在索引匹配时显示特定行:
<tr v-if="isClicked === index">
<td> {{ item.desc }} </td>
</tr>
推荐阅读
- java - 在 docker 容器内构建 gradle wrapper 5.2.1 的问题
- vue.js - 具有动态生成别名的 Vue-Router(也是 SSR)
- c# - Unity - 如何找到我的动画在哪一帧?
- java - 杰克逊反序列化波纹管JSON属性
- javascript - 从字符数组中获取单词并将其与另一个数组进行比较
- python - 断棒形成多边形的蒙特卡罗模拟
- python - 尝试运行“ctx 是缺少的必需参数”的命令时收到错误消息。[Python,discord.py]
- visual-studio - 使用 Visual Studio 和 CLI/VS Code 构建/运行 .Net Core 应用程序之间的区别
- python - 无缘无故的日志溢出?
- vuejs2 - Vue.js - 在 npm run build 后反转