【问题标题】:How to wrap text inside multiple v-select in vuetify?如何在 vuetify 中的多个 v-select 中包装文本?
【发布时间】:2020-12-27 21:36:21
【问题描述】:

我有一个 v-select 组件,如下所示:

<v-select
  class="area-select"
  v-model="selectedAreas"
  multiple
  :items="areas"
  item-text="label"
  item-value="key"
  label="Select" />

...

.area-select {
  margin-left: 10px;
  margin-right: 10px;
  width: 280px;
}

正如您所注意到的,它接受多个值。它还设置了一定的宽度。问题是,当我从这个组件中选择太多选项时,它会增加它的高度。我如何包装选择中显示的文本,而不是放大它?感谢您的帮助。

【问题讨论】:

    标签: javascript css vue.js vuetify.js


    【解决方案1】:

    我相信我们没有简单的方法来包装显示的文本,然后添加省略号或添加overflow: hidden

    但是,如果您想保持&lt;v-select/&gt; 的高度,即使有多个选择,您可能希望使用此implementation

    基本上,您将显示最少的选择数量,然后指定您将拥有的剩余选择数量。您将使用 &lt;v-select/&gt;selection 插槽进行此实现。

    <v-select
      ...
    >
    
      <template v-slot:selection="{ item, index }">
        <span v-if="index < maxDisplay">{{ item.label }} &nbsp;</span>
        <span
          v-if="index === maxDisplay"
          class="grey--text caption"
        >(+{{ selectedAreas.length - maxDisplay }} areas)</span>
      </template>
    
    </v-select>
    
    data: () => ({
      maxDisplay: 2, // how many selections will be displayed on `<v-select/>`
      selectedAreas: [{ label: "Area 51", key: 1 }],
      areas: [
        { label: "Area 51", key: 1 },
        { label: "Area 52", key: 2 },
        ...
        { label: "Area 59", key: 9 }
      ]
    })
    

    这是codesandbox 的示例演示。

    【讨论】:

      【解决方案2】:

      当多个选择的内容很大时,高度总是会扩大。 最好的解决方案是显示所选项目的计数,因为您始终可以通过再次单击选择来取消选择。

      您可以修改选择部分如下。

       <v-select
              class="area-select"
              v-model="selectedAreas"
              multiple
              :items="areas"
              item-text="label"
              item-value="key"
              label="Select">
                    <template v-slot:selection="{ index }">
                       <span v-if="index === 0"> Area ({{ selectedAreas.length }})</span>
                    </template>
       </v-select>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-14
        • 2018-07-08
        • 2021-11-22
        • 2020-08-14
        • 2019-02-24
        • 2021-05-20
        • 2018-08-03
        • 2022-10-01
        相关资源
        最近更新 更多