如何在模态中显示v-for中点击元素的vue数据

这就是我的 json 的样子。我以 v-for 格式显示其中一堆,并且可以单击其中一个。我想显示我在模式中单击的元素的数据。


[{

        "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);

    }

成分


  b-container

    b-card.joblist__post.mt-2(

      v-for="offer in filteredOffers",

      :id="id"

      :key="offer.id",

      @click="openModal"

    )

      .d-flex

        .joblist.d-flex.w-100

          .joblist__info.d-flex.align-items-center

            .company-logo.d-flex.align-items-center.mr-3

              b-img.logo(:src="offer.image")

            .joblist-name.d-flex.flex-column.text-left

              h5.mb-0.font-weight-bold {{ offer.title }}

              .located.d-flex.align-items-center.mt-2.justify-content-start

                b-icon.mr-2(icon="geo-alt-fill")

                p.m-0.text-secondary.joblist-span {{ offer.location }}

                b-icon.mx-2(icon="person-fill")

                p.m-0.text-secondary.joblist-span {{ offer.companyName }}

                b-icon.mx-2(icon="bar-chart-fill")

     


    b-modal(hide-footer="", :id="id")

      template(#modal-title="")

        | Information 

      .d-block.text-center

        p {{offer.jobDescription}}

      b-button(variant="primary") Ok



export default {

  data() {

    return {

      search: "",

    };

  },


慕斯王
浏览 88回答 2
2回答

倚天杖

您可以采用以下简单方法。数据中有一个selectedItem属性,如下所示:data: {&nbsp; &nbsp;return {&nbsp; &nbsp; &nbsp; selectedItem: {}&nbsp; &nbsp;}}并在元素上添加单击,如下所示,将单击的对象分配给 selectedItem:<button v-for="(e, i) in whateverDataArray" :key="i" @click="selectedItem=e">&nbsp; &nbsp; {{ e.companyName }}</button>然后只需将 selectedItem 作为道具传递给模态,这样当模态出现时,它将显示被单击的道具selectedItem!编辑:在您的情况下,您也应该从 for 循环中删除模态。此外,您不需要将selectedItemas 属性传递给模式,因为您可以访问selectedItem.

MMTTMM

将您的更改data为:data() {&nbsp; return {&nbsp; &nbsp; search: "",&nbsp; &nbsp; offer: null&nbsp; };},在您的模板中使用以下内容:p {{ offer.jobDescription }}并将click处理程序更改为:@click="openModal(offer)"offer一旦首先在数据中定义并通过点击传递,来自评论的建议就应该起作用。你确实开始offer行动了openModal。你的模态不应该在里面v-for。把它拿出来并硬编码一个id:b-modal(hide-footer="", id="offerModal")打开它:this.$bvModal.show('offerModal');
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript