javascript - 在 v-for 循环中定位特定索引

标签 javascript vue.js

我目前正在使用 VueJS 构建一个 crud 应用程序,需要在数据库中执行更新操作。

我将所有文档拉入一个集合中,如下所示:

<div class="events" v-for="(event, index) in GETEVENTS" :key="index">
  <ul class="list">
    <li>Name: <strong v-if="!change">{{event.name}}</strong><input v-else v-model="event.name"></li>
    <li>Location: <strong v-if="!change">{{event.location}}</strong><input v-else v-model="event.location"></li>
    <li>Capacity: <strong v-if="!change">{{event.qty}}</strong><input v-else v-model="event.qty"></li>
    <li>Price: <strong v-if="!change">${{event.price}}</strong><input v-else v-model="event.price"></li>
    <li>Description: <strong v-if="!change">{{event.description}}</strong><textarea v-else v-model="event.description"></textarea></li>
  </ul>
  <div class="actions">
    <button class="edit" @click="change = !change">Edit</button>
    <button class="delete" @click.prevent="DELETEEVENT(event._id)">Delete</button>
  </div>
</div>

所以元素以列表格式出现,在列表中我添加了仅在变量 changetrue 时显示的输入。

但是,由于该变量是全局变量,因此显示所有数组项的所有输入。如何使用此方法定位一个特定的数组项?

我完美地关闭了删除功能。是更新给我带来了问题。

如果其他方法更简单/更好,我愿意接受。

感谢阅读。

最佳答案

将您的 change 变量从 bool 值更改为您要编辑的 event._id 的表示形式。

data: () => ({
  change: null // start with null,
  GETEVENTS: [] // or whatever you currently have
})

然后通过您的编辑按钮设置该 ID

<button class="edit" @click="change = event._id">Edit</button>

通过将 changeevent._id 进行比较来切换输入

<strong v-if="event._id = change">

最后,您使用 event._id 作为您的 :key 绑定(bind),让 Vue 更好地跟踪它正在处理的对象

<div class="events" v-for="event in GETEVENTS" :key="event._id">

如果您开始对事件列表进行排序或过滤,这将特别有用。

关于javascript - 在 v-for 循环中定位特定索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58848749/

相关文章:

vue.js - 在 Vue.js 中,如何在单独的文件中编写自定义过滤器并通过在 main.js 中声明在各种组件中使用它们?

javascript - 在 HTML 中显示 Vue 计算对象数组

javascript - Bootstrap - 模态有时会中断滚动

javascript - 如何在javascript中将字符串数据转换为Geojson

javascript - 在 nuxt.js 身份验证中,用户始终重定向到刷新时登录

vue.js - Vue 路由器 : How to dynamically generate page titles for dynamic routes?

javascript - JQuery 不能与 Vuejs 一起使用

javascript - 如何判断 HTML 文本区域何时被 Javascript 更改

javascript - JavaScript 最大 Blob 大小是否有任何限制

javascript - React-Redux - NavMenu 上的唯一键警告