为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕斯王 2023-10-14 15:40:29
这就是我的 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") Okexport default {  data() {    return {      search: "",    };  },
查看完整描述

2 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

您可以采用以下简单方法。数据中有一个selectedItem属性,如下所示:


data: {

   return {

      selectedItem: {}

   }

}

并在元素上添加单击,如下所示,将单击的对象分配给 selectedItem:


<button v-for="(e, i) in whateverDataArray" :key="i" @click="selectedItem=e">

    {{ e.companyName }}

</button>

然后只需将 selectedItem 作为道具传递给模态,这样当模态出现时,它将显示被单击的道具selectedItem!


编辑:在您的情况下,您也应该从 for 循环中删除模态。此外,您不需要将selectedItemas 属性传递给模式,因为您可以访问selectedItem.


查看完整回答
反对 回复 2023-10-14
?
MMTTMM

TA贡献1869条经验 获得超4个赞

将您的更改data为:


data() {

  return {

    search: "",

    offer: null

  };

},

在您的模板中使用以下内容:


p {{ offer.jobDescription }}

并将click处理程序更改为:


@click="openModal(offer)"

offer一旦首先在数据中定义并通过点击传递,来自评论的建议就应该起作用。你确实开始offer行动了openModal。


你的模态不应该在里面v-for。把它拿出来并硬编码一个id:


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

打开它:


this.$bvModal.show('offerModal');


查看完整回答
反对 回复 2023-10-14
  • 2 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信