Модальный отображает все данные json вместо только одного элемента

#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 , как вы упомянули (да, это для массивов). Однако в объектных данных нет ничего плохого. Я бы оставил это.