Vue.js 如何跟踪v-select中选定的项目?
我正在使用Vuetify 1.5.2开发一个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
<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会迫使开发人员实现这样的解决方案,这似乎很愚蠢,但我想它符合我们的目的。再次感谢。如果有人要求,他们可能会补充这一点。您可以打开一个功能请求。