загрузите содержимое массива объектов в диалоговое окно vuetify

#arrays #typescript #object #combobox #vuetify.js

Вопрос:

У меня этот фрагмент кода действительно сбил меня с толку. Я использую typescript с vue (vuetify), и я все еще довольно новичок в typescript.

У меня есть массив объектов, которые я хочу загрузить в виде элементов в выпадающий список vuetify.

 Array =[ {   subject: 'science',   difficulty: 'medium' } {   subject: 'math',   difficulty: 'hard' }]  

при наличии предмета, видимого в раскрывающемся списке, и сложности будет значение, скрытое за полем со списком

я знаю, что это должно выглядеть так

 items: [ { text: 'science', value: 'medium' }, { text: 'math', value: 'hard' }];  

так что я могу загрузить его в v-combobox вот так

 lt;v-combobox :items="items" /gt;  

может ли кто-нибудь помочь мне в том, как этого достичь? очень признателен!

Ответ №1:

Я не понял вашу проблему, но типичное поле со списком должно выглядеть так:
(определите SelectedItem как пустой массив в ваших данных и назовите это.SelectedItem.text)

 lt;v-combobox  v-model="selectedItem"  :items="items"  item-value="value"  item-text="text"  :return-object="true"  label="Select an item.."  outlined  clearable  gt;  lt;/v-comboboxgt;  

Комментарии:

1. привет, в принципе, я хочу загрузить содержимое массива в виде элементов для выпадающего списка.. так что я просто передаю массив непосредственно в реквизит :элементы ?

2. да, это верно. вам нужна модель и предметы. также :return-object=»true» определяет, что после выбора вы можете вызвать весь объект следующим образом.SelectedItem. Ценность

Ответ №2:

Да, для загрузки содержимого массива вы устанавливаете реквизит элементов, а также реквизит «значение элемента» и «текст элемента», как это сделал @Aurora. Потому что у вас массив объектов, и компоненту нужно знать, каким будет значение и поле отображения.