Vue.js 如何跟踪v-select中选定的项目?

Vue.js 如何跟踪v-select中选定的项目?,vue.js,vuetify.js,v-select,Vue.js,Vuetify.js,V Select,我正在使用Vuetify 1.5.2开发一个vue.js应用程序。我们有一个v-select,如下所示: <v-select v-model="selectedOptions" :items="options" multiple outline offset-y small-chips @change="(selection) => selectionChanged(select

我正在使用Vuetify 1.5.2开发一个vue.js应用程序。我们有一个v-select,如下所示:

<v-select
    v-model="selectedOptions"
    :items="options"
    multiple
    outline
    offset-y
    small-chips
    @change="(selection) => selectionChanged(selection)" >
</v-select>
...
...
selectionChanged(selection) {
    console.log('selection=', selection);
}

...
...
选择已更改(选择){
log('selection=',selection);
}
这给了我一个下拉菜单,如下所示:

<v-select
    v-model="selectedOptions"
    :items="options"
    multiple
    outline
    offset-y
    small-chips
    @change="(selection) => selectionChanged(selection)" >
</v-select>
...
...
selectionChanged(selection) {
    console.log('selection=', selection);
}

我试图将所选选项传递给处理程序,但我没有得到我所选的特定项,而是得到selectedOptions中所选项的数组。实际上,我不知道选择了哪个项目。是否有道具或事件可以帮助我跟踪Vuetify 1.5.2中选择的特定项目

谢谢

我做了这个,你可以试试

长期而言,以下是代码:


const应用={
模板:“#应用程序模板”,
数据:()=>({
selectedItems:[],
选项:[
“一”、“二”、“三”
],
以前的选择:[]
}),
方法:{
选择已更改(选择){
console.log('previousSelection=',this.previousSelection)
设selected=null
if(this.previousSelection.length!this.previousSelection.includes(x))[0]
}else if(this.previousSelection.length>selection.length){
selected=this.previousSelection.filter(x=>!selection.includes(x))[0]
}
console.log('selected=',selected)
this.previousSelection=selection
console.log('selection=',selection)
}
}
}
新Vue({
vuetify:新的vuetify(),
渲染:h=>h(应用程序)
}).$mount(“#应用程序”)
如果保留上一个选择的跟踪(我使用了
previousSelection
变量)。您可以在当前选择和上一个选择之间进行差异,从而获得已单击的项目

这一行用于检查:

selected=selection.filter(x=>!this.previousSelection.includes(x))[0]

对于取消选中,它将执行相反的操作,它将使用不在选择中但在上一个选择中的选项:

selected=this.previousSelection.filter(x=>!selection.includes(x))[0]

[0]
在此为您提供数组中唯一的项,该项是前一个选择与当前选择之间差异的结果


这可能不是最优雅的解决方案,但它适用于检查/取消检查。

我真的不明白。您说要检索所选项目。但是勾选的是那些被选中的,因此它们位于
selectedOptions
中。也许你的意思是你想要被选中的新的?是的,我想你可以说:最后一个被选中(或未选中)。我提出了一个在选中和取消选中时都有效的答案。谢谢Ibris。我在阵列上的手表上做了类似的事情。v-select会迫使开发人员实现这样的解决方案,这似乎很愚蠢,但我想它符合我们的目的。再次感谢。如果有人要求,他们可能会补充这一点。您可以打开一个功能请求。