#javascript #vue.js #vuejs2 #vue-component #v-for
#javascript #vue.js #vuejs2 #vue-компонент #v-для
Вопрос:
Вот как выглядит мой json. Я хотел бы отобразить данные из элемента, на который я нажал, в модальном.
[{
"id": 1,
"companyName": "test",
"image": "https://mmelektronik.com.pl/wp-content/uploads/2017/10/Insert-logo.jpg.png",
"location": "Warsaw",
"salary": "10000",
"skill": "Junior",
"tags": "test",
"jobDescription": "test",
"title": "UI Designer"
}
]
Now I want to access only jobDescription and display it in the modal.
b-modal(hide-footer="", :id="id")
template(#modal-title="")
| Information
.d-block.text-center
p {{ want the jobDescription here }}
b-button(variant="primary") Apply
Вот как я открываю модальный.
openModal(item) {
this.offer = item;
this.$bvModal.show(this.id);
}
Комментарии:
1. каково содержание ваших предложений json?
2. findit-b484b.firebaseio.com/offer.json , вместо отображения только одного описания задания, он отображает их все в модальном виде. Я хочу, чтобы отобразить описание задания на основе элемента, на который я нажал.
Ответ №1:
v-for
используется для перебора набора данных, а это не то, что вам нужно. Предполагая id
, что это идентификатор из вашего json
, попробуйте это:
b-modal(hide-footer="", :id="id")
template(#modal-title="")
| Information
.d-block.text-center
p() {{ offers[id].jobDescription }}
b-button(variant="primary") Apply
Вы могли бы поместить это в вычисляемый вместо этого, если вы сохраняете выбранный id
в качестве переменной данных:
computed: {
selected() {
return this.offers[this.id].jobDescription;
}
}
(Редактировать: не понял, что вы опубликовали свой json, мой предыдущий ответ был для массива)
Комментарии:
1. Я собирался написать, является ли предоставленный мной json недействительным? Должен ли json быть в массиве? Я использовал firebase для создания этого json для целей тестирования. Я жду нового API, будет ли он работать с вашим ответом?
2. Нет, все в порядке, допустимый json может быть либо объектом, либо массивом. Массив, вероятно, просто немного более распространен для наборов данных
3. все ли эти карты, фильтры, сокращения и т. Д. Созданы для работы с массивами? Должен ли я переделать свой json в формат массива?
4. Если ваши новые данные представляют собой массив объектов, их
offers[id]
необходимо будет изменить, поскольку массивы просматриваются по индексу, а не по ключу. Итак, если бы это был массив, вам понадобился бы индекс или метод массива.find
, как вы упомянули (да, это для массивов). Однако в объектных данных нет ничего плохого. Я бы оставил это.