【问题标题】:vue.js how do I make a v-slot template dynamic?vue.js 如何使 v-slot 模板动态化?
【发布时间】:2021-04-12 07:47:58
【问题描述】:

您好,感谢您阅读我的问题!我正在使用 Vue.js、Vuetify 和 v-data-table,我正在努力让我的 v-slot 使用两个不同的字符串作为标题的名称。

<template>
  <v-container fluid>
    <v-data-table
      :options="data"
      :headers="headers"
      :items="data
      :server-items-length="40"
      :loading="loading"
      :multi-sort="true"
      @update:options="updateThePage"
    >
      <template v-slot:[`header.overalls`]="{ header }" class="flight-date-header">
        <overallDatePicker
          :options="data"
        />
        {{ header.name }}
      </template>

      <template v-slot:[`item.name`]="{ item }">
        <p class="company-name">
          {{ item.companyName }}
        </p>
      </template>

      <template v-slot:[`item.price`]="{ item }">
          <p> {{ item.price }} </p>
      </template>

      <template v-slot:[`item.flightDate`]="{ item }">
        <p class="style">
          {{ item.startDate }}
        </p>
      </template>

    </v-data-table>
  </v-container>
</template>

我将我的标题存储如下

headers: [
      { text: 'Campaign Name', value: 'overalls' },
    ],

理想情况下,我想要这个插槽的名称

<template v-slot:[`header.overalls`]="{ header }" class="flight-date-header">
       <overallDatePicker
         :options="data"
       />
     </template>

使用两种不同的数据选项。现在标题的名称是工作服,但我希望标题的名称使 ['header.overalls']['header.('overalls' || 'shoes')]

原因我现在这样做是因为当我点击标题时,表格的 options.sortBy 属性设置为“overalls”,但我希望列上的图标显示如果 table 的 options.sortBy 属性是“overalls”,则显示出来,如果是“shoes”,也会显示出来

请帮忙,非常感谢!

【问题讨论】:

  • 那么您是否要让您的组件使用两种不同的列配置?
  • 是的,这正是我想要做的
  • 好吧,实际上你没有。您希望对同一个表中的两个不同列使用相同的标题槽内容。这是一个非常不同的事情......

标签: vue.js vuetify.js v-slot


【解决方案1】:

要为多个标题/列重用插槽内容,请使用 Vue 的 dynamic slots names 功能 + v-for

data() {
  return {
    specialHeaders: ['overalls', 'shoes'],
  }
}
<template v-for="column in specialHeaders" v-slot:[`header.${column}`]="{ header }">
  Special:{{header.text}}
</template>

【讨论】:

  • 我实际上需要柱子同时使用两种不同的柱子配置,所以我需要它与“overalls”一起使用,也可以与“shoes”一起使用
  • 那些是同一个表中的列?
猜你喜欢
  • 1970-01-01
  • 2022-11-01
  • 1970-01-01
  • 2020-02-25
  • 1970-01-01
  • 1970-01-01
  • 2020-08-08
  • 1970-01-01
  • 2020-04-12
相关资源
最近更新 更多