Как очистить выбранную строку в v-data-table, Vuetify

Nov 13 2020

У меня есть приложение Vue , где я использую v-data-tableс show-selectопцией. Я хочу удалить только выбранные данные с помощью кнопки «отменить». Уже могу очистить все данные из таблицы onclick.

Пример на картинке: я хочу очистить только выбранную строку (сэндвич с мороженым)

Вот мой код:

Стол:

<v-data-table
  v-model="selected"
  :headers="headers"
  :items="desserts"
  :single-select="singleSelect"
  item-key="name"
  show-select
  class="elevation-1"
>
  <template v-slot:top>
    <v-switch
      v-model="singleSelect"
      label="Single select"
      class="pa-3"
    ></v-switch>
  </template>
</v-data-table>

кнопка "отменить"

<v-btn class="ma-2" color="primary" @click="cancel"> Cancel </v-btn>

сценарий

cancel() {
   this.desserts = [];
},

Ответы

1 Dan Nov 13 2020 at 09:51

Если вы просто хотите отменить их выбор:

cancel() {
   this.selected = [];
}

Если вы хотите их удалить:

cancel() {
  this.desserts = this.desserts.filter(item => {
    return this.selected.indexOf(item) < 0;
  });
}

Имейте в виду, что этот алгоритм вычитания массива имеет сложность O (n ^ 2), поэтому для больших наборов данных это может быть медленным. В этом случае вы можете использовать более надежный алгоритм.