Вы не можете сделать это так, потому что свойство item-disabled
на самом деле для чего-то другого.
Из документов :
item-disabled
По умолчанию: disabled
Тип: строка | массив | функция
Установить свойство отключенного значения элементов
Так item-disabled
просто указывает, какое поле на объектах будет обрабатываться как «отключенное поле». По умолчанию это поле disabled
.
Без item-disabled
у вас были бы такие объекты:
items: [
{text: 'Foo', value: 'Foo'},
{text: 'Buzz', value: 'Buzz', disabled: true},
],
И если у объектов есть какое-то другое «отключенное свойство» (например, customDisabled
), тогда используйте item-disabled
prop следующим образом:
<v-select :items="items" item-disabled="customDisabled"
// ...
items: [
{text: 'Foo', value: 'Foo'},
{text: 'Buzz', value: 'Buzz', customDisabled: true},
],
Codepen
Если вам нужно сохранить массивы строк, вы можете просто сопоставить элементы с массивом объектов и передать его:
<v-select :items="computedItems"
// ...
data: () => ({
items: ['Foo', 'Bar', 'Fizz', 'Buzz'],
disabledItems: ['Buzz'],
}),
computed: {
computedItems() {
return this.items.map(item => {
return {
text: item,
disabled: this.disabledItems.includes(item)
}
})
}
}
Codepen
Кроме того, вы можете передать массив для достижения желаемой глубины, если ваше отключенное поле вложено, например:
:item-disabled="['meta', 'disabled']"
// ...
{
text: item,
meta: {
disabled: true
}
}