我的代码中有以下 v-select:
<v-select
v-if='d.length'
v-model='ci'
:items='d'
item-text='value.name'
item-value='value.name'
label='label'
multiple='multiple'
height='60'
small-chips
single-line
solo
@change='itemChanged'
>
<template v-slot:prepend-item v-if='multiple && title && d.length'>
<v-list-tile
ripple
@click="action"
>
<v-list-tile-action>
<v-icon :color="ci.length > 0 ? 'indigo darken-4' : ''">{{ icon }}</v-icon>
</v-list-tile-action>
<v-list-tile-content>
<v-list-tile-title>{{title}}</v-list-tile-title>
</v-list-tile-content>
</v-list-tile>
<v-divider class="mt-2"></v-divider>
</template>
<template v-slot:selection="{ item, index }">
<v-chip v-if="index === 0">
<span>{{ item.text }}</span>
</v-chip>
<span
v-if="index === 1"
class="grey--text caption"
>(+{{ checkedItems.length - 1 }} others)</span>
</template>
</v-select>
它接收模型、项目和其他定义作为道具。Model 和 Items 是相同的对象数组,具有以下结构:
{text: 'text', value: {name: 'foo'}}
因此,在安装组件时,基本上所有项目都会被选中。
一旦用户点击列表中的一个项目,我想在我的itemChanged
方法中接收整个对象,或者至少是值对象。暂时我只想控制台记录收到的对象:
itemChanged(value) {
console.log('Changed item', value);
}
但它会打印整个模型数组,减去点击的项目
尝试使用return-object
,尝试更改 item-value 并更改对象结构 - 总是相同的结果。
任何想法如何才能仅获取单击的项目对象/值?