Vue-multiselect v-model="значение [?]" В vuetable-2

Я использую vuetable-2 для моего стола. В одном столбце мне нужно иметь множественный выбор, поэтому я использую Vue-multiselect. Проблема в том, что Vue-multiselect использует v-model="value", поэтому, когда я выбираю что-то в одной строке, все остальные строки обновляются с тем же выбором.

Если бы это был цикл forach для рендеринга таблиц, я бы использовал v-model="value[row.id]", но в vuetable-2 я не знаю, как получить доступ к идентификатору строки моей таблицы. Я попытался: v-модель = "значение [идентификатор]", v-модель = "значение [data.id]", v-модель = "значение [rowData.id]", и ничего не работает (и да, в мои данные, каждая запись имеет свой идентификатор).

<template>
  <div>
    <filter-bar></filter-bar>
    <vuetable ref="vuetable"
              api-url="api/product-changes"
              :fields="fields"
              pagination-path=""
              @vuetable:pagination-data="onPaginationData"
              :per-page="3"
              :sort-order="sortOrder"
              :append-params="moreParams"
    >
      <template slot="multiselect" slot-scope="props">
        <multi-select :options="options"
                      v-model="value" // here is the problem
                      track-by="id"
                      label="name"
                      :multiple="true"
        ></multi-select>
      </template>
    </vuetable>
    <div class="vuetable-pagination ui basic segment grid">
      <vuetable-pagination-info ref="paginationInfo"
      ></vuetable-pagination-info>
      <vuetable-pagination ref="pagination"
                           @vuetable-pagination:change-page="onChangePage"
      ></vuetable-pagination>
    </div>
  </div>
</template>

картина моего стола и варианты множественного выбора

2 ответа

Нашел это,

v-model="value[props.rowData.id]"

кажется, работает.

в моем случае без использования

      track-by="id"
label="name"

у меня работает нормально вот так:

              <multiselect
              v-model="rowData.id"
              :options="options"
              optionsLimit="2000"
              placeholder=""
              max="3"
              maxHeight="600"
              :selected.sync="selected"
              :show-labels="false"
              :searchable="true"
              :allow-empty="false"
              :multiple="true"
              :preserve-search="true"
              :preselect-first="false"
              >

и для доступа к rowData.id, поэтому rowData должен быть одним столбцом, и если rowData является массивом, чтобы вы могли получить доступ к своим идентификаторам, указав столбец, подобный этому rowData[index].id

Другие вопросы по тегам