Итак, я обновился с vuetify 1.5 до последней версии (2.1xx) и застрял в нескольких местах. У меня есть таблица данных, в которой я хочу установить флажок "выбрать все" в заголовке. Я добавил его с помощью свойства «show-select», и я вижу, что, когда флажок установлен, фактически помещает все элементы в «выбранную» v-модель.

Моя проблема в том, что я хочу иметь шаблон для элементов-реквизитов, чтобы настроить внешний вид строк, и флажок, который я привязываю к «props.selected», похоже, не работает. Если я устанавливаю какой-либо флажок в любой строке, элемент не добавляется в мою "выбранную" v-модель.

только если я вообще не использую шаблон, я заставляю его работать с автоматически сгенерированными флажками, но этого недостаточно для моих текущих требований. В vuetify 1.5 у меня это заработало, но я не понимаю, как заставить его работать в новой версии.

<template>
<div>
    <v-data-table 
        hide-default-footer 
        v-model="selected" 
        :sort-desc.sync="sortDescending"
        :sort-by.sync="sortBy"
        :headers="headers" 
        :items="cases" 
        item-key="id" 
        show-select 
        :items-per-page="itemsPerPage"
        class="elevation-0">

        <template v-slot:item="props">
            <tr>
              <td>
                   <v-checkbox v-model="props.selected" color="nordnetBlue" hide-details ></v-checkbox>
                </td>       
                <td class="navigation-link" @click="goToCase(props.item)">{{ concatText( props.item.subject, 20) }}</td>
                <td>{{ props.item.createdOn }}</td>
                <td>{{ props.item.source }}</td>
                <td>{{ !props.item.isSameQueue ? props.item.queueName : '' }}</td>
            </tr>
        </template>
    </v-data-table>
    <pre class="green--text">{{selected}}</pre>
</div>
</template>
3
Toby Fieldgroove 30 Ноя 2019 в 21:36

1 ответ

Я не мог решить эту проблему, поэтому я следовал примеру документации vuetify о том, как настроить слот для каждого конкретного столбца.

Так и в моем случае, как видите. в трех столбцах я просто отображаю текст как есть, а в двух из них я делаю некоторые изменения. Итак, я использовал шаблон для двух, которые хотел отредактировать.

Примере:

template v-slot:item.Name="{ item }">
   {{ item.Name }}                                
   <v-tooltip bottom>
    <template v-slot:activator="{on}">
      <v-icon @click="openCustomer(item.Id)" class="clickable" small color="nordnetBlue" v-on="on">launch</v-icon>
    </template>
    Open in new window
    </v-tooltip>                                  
</template>
1
Toby Fieldgroove 1 Дек 2019 в 14:30