在v-for循环中从Vuetify Multi Select中移除芯片

时间:2020-07-22 11:34:18

标签: vue.js vuejs2 vuetify.js nuxt.js

我正在使用vuetify v.2,并通过multi select创建了一些v-for。 除删除chips之外,其他所有操作均正常。当我尝试删除任何select时,它会从最后一个中删除。它与index方法中定义的删除的item中的remove有关。看起来所有items都获得了最后index的{​​{1}}。

这是我的代码:

select

2 个答案:

答案 0 :(得分:1)

您可以只传递id而不是整个item对象...

 <v-chip
     v-bind="attrs"
     :input-value="selected"
     close
     @click="select"
     @click:close="remove(item.id)">
     <strong>{{ item.title }}</strong>
 </v-chip> 

 ...
 remove (id) {
    let idx = this.attrArr.indexOf(id)
    this.attrArr.splice(idx, 1)
    this.attrArr = [...this.attrArr]
 },

演示:https://codeply.com/p/Cb5TYCS6Bt

答案 1 :(得分:1)

在您的remove方法中,您正在attrArr中查找仅由ID组成的对象的索引。尝试以下方法:

this.attrArr.splice(this.attrArr.indexOf(item.id), 1)