Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menyembunyikan elemen senarai berdasarkan syarat dalam kaedah?

Andaikan saya mempunyai tatasusunan item yang ingin saya gelungkan, dan setiap item mempunyai keadaannya sendiri berdasarkan bahagian lain aplikasi.

<template v-for="(item, index) in items">
  <li>
    <i :class="item.iconClass"></i>
    {{ item.name }}
    <strong :class="item.textClass"> {{ item.function }} </strong>
  </li>
</template>
items: [{
    iconClass: "fas fa-calendar",
    name: 'item1',
    textClass: "text_style",
    function: this.function1
  },
  {
    iconClass: "fas fa-user",
    name: 'item3',
    textClass: "text_style",
    function: this.function2
  }, {
    iconClass: "fas fa-clock",
    name: 'item3',
    textClass: "text_style",
    function: this.function2
  }
]

item1 Mempunyai fungsi yang mengambil beberapa data daripada tatasusunan lain -

function1() {
  if (this.otherArray.otherItem) {
    return this.otherArray.otherItem
  }
}

Sekarang, jika tatasusunan lain tidak wujud (adalah palsu), data dalam tatasusunan itu tidak akan dipaparkan, tetapi ikon dan nama item 1 masih akan dipaparkan kerana ia tidak tergolong dalam pernyataan bersyarat dalam kaedah tersebut.

Jadi bagaimana saya boleh mengatasi kaedah ini supaya keseluruhan item dalam senarai disembunyikan apabila syaratnya palsu?

Perlu diingat bahawa item 2item 3 mempunyai set syaratnya sendiri, jadi saya tidak boleh memohon v-if pada templat. Saya perlu menyasarkan item ini secara individu.

P粉215292716P粉215292716282 hari yang lalu343

membalas semua(1)saya akan balas

  • P粉715304239

    P粉7153042392024-01-11 11:42:50

    Tambah atribut condition pada setiap item tatasusunan -

    items: [{
        iconClass: "fas fa-calendar",
        name: 'item1',
        textClass: "text_style",
        function: this.function1,
        condition: this.otherArray && this.otherArray.otherItem
      },
      {
        iconClass: "fas fa-user",
        name: 'item3',
        textClass: "text_style",
        function: this.function2,
        condition: true // you can write your logic here
      }, {
        iconClass: "fas fa-clock",
        name: 'item3',
        textClass: "text_style",
        function: this.function2,
        condition: true // you can write your logic here
      }
    ]

    Dan di dalam 模板, gunakan sifat ini untuk menyembunyikan/menunjukkan item -

    <template v-for="(item, index) in items">
      <li v-if="item.condition">
        <i :class="item.iconClass"></i>
        {{ item.name }}
        <strong :class="item.textClass"> {{ item.function }} </strong>
      </li>
    </template>

    balas
    0
  • Batalbalas